Ubuntu18下编译安装torchvision—C++API的详细过程

本文记录了在使用LibTorch进行网络模型部署时,如何编译安装torchvision并解决相关问题。首先从GitHub下载与LibTorch版本对应的torchvision源码,然后在编译过程中遇到CMake版本低导致的错误,通过升级CMake到3.13.2版本解决。最后详细介绍了编译和安装步骤,并在CMakeLists中配置torchvision库的使用。
部署运行你感兴趣的模型镜像

最近使用libtorch做网络模型的部署,在编写后处理代码时用到了官方自带的nms.h文件,但该文件需要安装torchvision,而torchvision并不包含在官方的LibTorch包中,需要自行下载源码并进行编译安装,安装过程中遇到了一些问题,在此一并记录下来。

目录

一、下载源码包

二、编译过程及遇到的BUG

三、使用


一、下载源码包

首先就是在github上下载torchvision源码包,在这里要注意一点的是,所安装的torchvision必须要与你的LibTorch版本对应,在GitHub主页的tags中下载相应版本的torchvision,这个对应关系在官方GitHub上有说明,如下:

因为我的LibTorch是1.5.0-CPU版本的,所以我就要下载0.6.0版本的torchvision,后面的安装都以这个为例,其他版本的安装也一样。

二、编译过程及遇到的BUG

下载好后,将压缩包解压到自己看着舒服的位置,重命名为vision(这步只是为了后面操作方便,可以随你怎么自定义hhh),并在vision同级目录下新建torchvision文件夹,用来存放最终的安装文件。然后在解压的文件夹vision内新建一个build文件夹并进入。

mkdir build
cd build

进入build文件夹后打开终端,开始进行编译(这里注意下不要按照GitHub官方的教程来编译,那个教程的有些命令参数暂时不是很全,会报错的!)首先我们输入如下命令(注意把相关的路径修改为自己的路径):

cmake -DCMAKE_PREFIX_PATH=/home/wsx/LibTorch/libtorch150cpu/libtorch -DCMAKE_INSTALL_PREFIX=/home/wsx/LibTorch/libtorch150cpu/torchvision060/torchvision -DCMAKE_BUILD_TYPE=Release ..

相比官方教程,这里主要多了个 -DCMAKE_PREFIX_PATH=/home/wsx/LibTorch/libtorch150cpu/libtorch 以及 -DCMAKE_INSTALL_PREFIX=/home/wsx/LibTorch/libtorch150cpu/torchvision060/torchvision 。第一个红色的命令很重要!是必须要有的!这个是你的LibTorch存放的路径,因为torchvision编译时会依赖LibTorch里面的相关文件!第二个参数是说明最终的安装文件安装在哪里,这里就是上面新建的torchvision文件夹,当然具体放哪自己看着舒服就行,不一定非按我的来,还有就是注意路径别写错了!注意区分大小写字母!哎,这里说多了都是泪T-T~

说明:因为我要安装的是CPU版本的,想要装GPU版本的话还要在命令行紧跟在Release后面中加入 -DWITH_CUDA=ON 参数

好了,现在执行上面这个命令,emmmmm,看看是不是会报错hhh(没报错就略过这部分哈)

————————————————BUG—修改—————————————

忘记截图了,但是保存了部分内容如下:

CMake Warning at CMakeLists.txt:13 (find_package):   By not providing 
"FindPython3.cmake" in CMAKE_MODULE_PATH this project has   asked CMake to find a 
package configuration file provided by "Python3", but   CMake did not find one.

这个问题主要是因为cmake版本太低了!Ubuntu18.04上的原装CMake版本为3.10,可以通过命令 cmake -version查看,而3.10版本的cmake没有FindPython3.cmake文件,因此我们可以把cmake升级到3.13.2版本(我是安装的这个版本,其他的可能也可以自行尝试吧hhh),然后重新编译就行了。

对于该bug的有关讨论参考GitHub链接:

https://github.com/pytorch/vision/issues/2045

Minimum CMake version required to build. · Issue #2085 · pytorch/vision · GitHub

cmake下载链接:

官网GitHub

下载CMake-3.13.2.tar.gz

安装过程也很简单——不用卸载原有的cmake,会自动覆盖的,解压后依次输入以下命令就好了:

./configure
make
make install

然后输入cmake --version 指令来查看新的cmake版本。

——————————————BUG—END———————————

在第一步cmake执行完成后,接下来依次执行以下指令:

make
make install

不出问题的话,到这里就安装完成了。然后就是在代码中使用torchvision了。

三、使用

因为我使用cmake编译的代码,所以我要在原有的CmakeLists文件上做下微改,加入torchvision库,修改的部分如下:

set(CMAKE_PREFIX_PATH "/usr/local/lib;/home/wsx/LibTorch/libtorch150cpu/libtorch;/home/wsx/LibTorch/libtorch150cpu/torchvision060/torchvision")

find_package(TorchVision REQUIRED)

target_link_libraries(test1 PUBLIC ${TORCH_LIBRARIES} ${OpenCV_LIBS} TorchVision::TorchVision)

以上红色部分是我修改的部分,注意有关的路径别写错了!然后就可以在源代码中开心的加入 #include "torchvision/csrc/nms.h" 并使用啦~

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

地球被支点撬走啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值