最近使用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" 并使用啦~
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)