TX2配置Pytorch的C++接口libtorch

由于想给算法加速,因此尝试一下pytorch的C++接口libtorch。
首先,TX2上面已经配置好了pytorch1.0版本。

第一种方法:
官网下载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有问题。
这是在TX2上操作的,考虑官方提供的libtorch是编译好的,可能不支持arm64环境,因此采用第二种方法自己编译。

第二种方法:
进入pytorch的build文件夹(我的pytorch1.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/cmake/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}) 

猜你喜欢

转载自blog.csdn.net/qq_33206394/article/details/88422494