Cascade rcnn在linux环境下运行的调试记录(pytorch版本)

这个cascade RCNN的调试是真的折磨人,对于新手的我,查了各种各样奇奇怪怪的资料,终于调通了。以此记录,如果能帮助到大家,那就更好了。

调试步骤

第一步 下载工程

我的工程目录是这样的
Cascade rcnn在linux环境下运行的调试记录(pytorch版本)
此处我们默认大家可以正确导入数据集,因为此处主要记录的是如何生成nms里面调用的_C库。

第二步 观察setup.py

用命令行进入 到 lib文件夹
Cascade rcnn在linux环境下运行的调试记录(pytorch版本)
那么我们此时,先别急着运行什么,我们先打开setup.py,看看里面的头文件结构是什么
Cascade rcnn在linux环境下运行的调试记录(pytorch版本)
从这个头文件可以知道,这份代码肯定是用的pytorch1.0以上的编译环境,因为它调用了这一句from setuptools import setup

第三步 配置环境

如果没有虚拟环境就先配置一下虚拟环境

conda create -n torch(1.0) python==3.7

然后建立好环境后激活一下

conda activate torch(1.0)

接着呢~,我们先安装一下requirement.txt里面的环境
Cascade rcnn在linux环境下运行的调试记录(pytorch版本)
然后配置好后,就进入重头戏了。我们知道如果直接运行肯定会发现报这个错
no module....._C
然后到处找都没找到这个_C是哪里的,其实是编译nms文件夹里面的.c、.h以及csrc文件夹里面的头文件来生成的一个.so的加密文件,至于为什么加密,我也不知道,反正是能加速吧
此时,你先查看一下自己的cuda版本,这个很重要,非常重要,因为这里就决定你最后编译后的文件是什么cuda版本,如果这里不查,到后面配环境配错了,是运行不出那个_C库的
查看cuda的命令是nvcc -V
我自己是cuda10
然后就在自己的虚拟环境里面配置pytorch,原封不动地复制就可以

conda install pytorch==1.0.1 torchvision==0.2.2 cudatoolkit=10.0 -c pytorch

然后安装好之后就开始编译
在命令行里面输入这个

setup.py build develop

最后就可以生成这个文件
Cascade rcnn在linux环境下运行的调试记录(pytorch版本)
这样就可以了。
此处注意一下,gcc的版本最后要和自己的Ubuntu版本匹配,我的是Ubuntu18,对应的是gcc 7.5
还有就是如果有make.sh这个东东,也可以编译这个都行
sh make.sh

报错记录

如果出现这个错误
/usr/local/cuda-10.0/nvcc: No such file or directory
你只需要在命令行输出
export CUDA_HOME=/usr/local/cuda-10.0/
如果出现 _cudaPopcallConfiguration 以及出现ImportError: libcudart.so.8.0 cannot open shared object file: No such file or directory
那肯定是你的pytorch和cuda版本不匹配

如果在setup.py里面的头文件是
from torch.utils.ffi import create_extension
那就是旧版本的torch环境才行,需要切换回0.3.1

上一篇:卓信宝今日策略大盘重新站上3400,接下来能不能追?


下一篇:【Spock-Genesis】字符串自动生成——Gen.string