Ubuntu_Anaconda_opencv4.5.3_opencv_contrib4.5.3_libtorch1.8.1安装配置之二-安装配置libtorch

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/471036

相关文章

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

maven私服配置全过程

《maven私服配置全过程》:本文主要介绍maven私服配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用Nexus作为 公司maven私服maven 私服setttings配置maven项目 pom配置测试效果总结使用Nexus作为 公司maven私