TX 2 PytorchのC++インタフェースlibtorchを構成する

2535 ワード

アルゴリズムを加速させたいので、pytorchのC++インタフェースlibtorchを試してみます.まず、TX 2の上にpytorch 1が配置する.バージョン0
1つ目の方法:libtorchを公式サイトでダウンロードする:https://download.pytorch.org/libtorch/cu90/libtorch-shared-with-deps-latest.zipそれを適当な位置に解凍して(コンパイルされたので、どこでもいいです)、ネット上の手順に従って、自分でc++コード呼び出しを書いて、ヘッダファイルを加えます.
#include "torch/script.h"
#include "torch/torch.h"

CMakeListファイルを書く:
cmake_minimum_required(VERSION 3.5)
project(test_pytorch)
set(CMAKE_CXX_STANDARD 11)
set(Torch_DIR /home/nvidia/libtorch/share/cmake/Torch) 
find_package(OpenCV REQUIRED)
find_package(Torch REQUIRED)    
add_executable(test_pytorch test_pytorch.cpp)
target_link_libraries(test_pytorch ${OpenCV_LIBS}  ${TORCH_LIBRARIES}) 

しかし、makeを再コンパイル中にlibtorchのようなエラーが発生しました.soに問題がある.これはTX 2上で操作され、公式に提供されているlibtorchがコンパイルされていることを考慮し、arm 64環境をサポートしていない可能性があるため、第2の方法で自分でコンパイルします.
2つ目の方法:pytorchのbuildフォルダ(私のpytorch 1.0の前にコンパイルがインストールされています)に入り、sudo python ../tools/build_libtorch.pyのコンパイルが完了すると、次のインタフェースが表示されます.
-- Install configuration: "Release"
-- Set runtime path of "/home/nvidia/pytorch/torch/test/batch_matmul_op_gpu_test" to "$ORIGIN:/usr/local/cuda/lib64"
-- Set runtime path of "/home/nvidia/pytorch/torch/lib/libthnvrtc.so" to "$ORIGIN:/usr/local/cuda/lib64"
-- Set runtime path of "/home/nvidia/pytorch/torch/lib/libtorch.so.1" to "$ORIGIN:/usr/local/cuda/lib64"
-- Set runtime path of "/home/nvidia/pytorch/torch/lib/libcaffe2_detectron_ops_gpu.so" to "$ORIGIN:/usr/local/cuda/lib64"
-- Set runtime path of "/home/nvidia/pytorch/torch/lib/libcaffe2_module_test_dynamic.so" to "$ORIGIN"
-- Set runtime path of "/home/nvidia/pytorch/torch/lib/libcaffe2_observers.so" to "$ORIGIN"

その後、cmake、cmakeの過程で次のエラーが発生しました.
Could not find a package configuration file provided by "Torch" with any of the following names:
    TorchConfig.cmake
    torch-config.cmake

私はpytorchフォルダでTorchConfigを検索しています.cmake,/pytorch/torch/share/cake/torch経路の下にあることが分かったので,CmakeListsにこの経路を加える必要がある.コンパイル成功!
cmake_minimum_required(VERSION 3.5)
project(test_pytorch)
set(CMAKE_CXX_STANDARD 11)
set(Torch_DIR /home/nvidia/pytorch/torch/share/cmake/Torch) 
find_package(OpenCV REQUIRED)
find_package(Torch REQUIRED)    
add_executable(test_pytorch test_pytorch.cpp)
target_link_libraries(test_pytorch ${OpenCV_LIBS}  ${TORCH_LIBRARIES})