本文主要是介绍Ubuntu_Anaconda_opencv4.5.3_opencv_contrib4.5.3_libtorch1.8.1安装配置之二-安装配置libtorch,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Ubuntu16.04 配置 LibTorch_c++编译libtorch工程
文章目录
- 一. 下载LibTorch
- 二、libtorch工程编译执行示例
- 1.编写CMake构建配置
- 2.编写 example-app.cpp 程序
- 3.CMake编译
- 参考链接:
一. 下载LibTorch
下载参考链接:
获取libtorch有两种方式:
a. 从官网下载编译好的文件:
最新编译的:https://pytorch.org/
以前编译的版本:https://blog.csdn.net/weixin_43742643/article/details/114156298
参考编译libtorch示例工程方式:
https://pytorch.org/cppdocs/installing.html
b. 自己源码编译
官方编译好的版本有两种版本,Pre-cxx11 ABI 和 cxx11 ABI两种,我选择的是:libtorch 1.8.1 (LTS) cxx11 ABI
链接:https://download.pytorch.org/libtorch/cu111/libtorch-cxx11-abi-shared-with-deps-1.8.1%2Bcu111.zip
下载libtorch后解压,解压后的文件夹包含以下文件:
lib/文件夹:包含必须链接的共享库;
include/文件夹:包含程序需要包含的头文件;
share/文件夹:包含必要的 CMake 配置,以启用上面的简单find_package(Torch)命令。
二、libtorch工程编译执行示例
1.编写CMake构建配置
CMakeLists.txt文件如下:
可以参考官网:https://pytorch.org/cppdocs/installing.html
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project(example-app)find_package(Torch REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")add_executable(example-app example-app.cpp)
target_link_libraries(example-app "${TORCH_LIBRARIES}")
set_property(TARGET example-app PROPERTY CXX_STANDARD 14)# The following code block is suggested to be used on Windows.
# According to https://github.com/pytorch/pytorch/issues/25457,
# the DLLs need to be copied to avoid memory errors.
if (MSVC)file(GLOB TORCH_DLLS "${TORCH_INSTALL_PREFIX}/lib/*.dll")add_custom_command(TARGET example-appPOST_BUILDCOMMAND ${CMAKE_COMMAND} -E copy_if_different${TORCH_DLLS}$<TARGET_FILE_DIR:example-app>)
endif (MSVC)
2.编写 example-app.cpp 程序
实现将简单地创建一个新的torch :: Tensor并将其打印出来,代码如下:
#include <torch/torch.h>
#include <iostream>int main() {torch::Tensor tensor = torch::rand({2, 3});std::cout << tensor << std::endl;
}
3.CMake编译
完成CMakeLists.txt文件和示例.cpp文件后,使用cmake编译。在项目文件夹下新建build文件夹,项目文件夹包含以下文件。
打开终端,进入build文件夹下,执行编译命令:
#cmake -DCMAKE_PREFIX_PATH=/absolute/path/to/libtorch ..
$ cmake -DCMAKE_PREFIX_PATH=/XXXX/libtorch ..
完成后,执行命令:
make
生成可执行文件example-app,build文件夹生成的文件如下:
执行可执行文件:
./example-app
生成结果如下:
好的,完整步骤就完成了。
请注意以下问题:
在CMakeLists.txt文件中,选择合适的cmake最低版本:
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
如果改成
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
在执行编译命令:
#cmake -DCMAKE_PREFIX_PATH=/absolute/path/to/libtorch ..
$ cmake -DCMAKE_PREFIX_PATH=/XXXX/libtorch ..
有一些CMake Warning ,但可以编译成功。
当执行命令:
make
时,出现”fatal error: torch/torch.h:没有那个文件或目录“的错误提示:
因此注意选择合适的cmake最低版本
可以参考以下链接,讲解的比较详细。
参考链接:
https://blog.csdn.net/john_bh/article/details/108221748
https://oldpan.me/archives/pytorch-c-libtorch-inference
https://blog.csdn.net/github_30605157/article/details/79839177
这篇关于Ubuntu_Anaconda_opencv4.5.3_opencv_contrib4.5.3_libtorch1.8.1安装配置之二-安装配置libtorch的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!