最近使用Deep Snake,需要安装DCNv2库,参考了网上大佬几篇帖子,终于安装成功了!!!这里把各种报错做一个集锦~
这里先声明,目前在网上找到的能够兼容最高的pytorch就是1.8版本,如果你的pytorch版本过高,要么卸载重装,要么蹲一个能够兼容更高版本pytorch的DCNv2包
1.我的安装环境
pytorch | 1.8.1+cu111 |
cuda | 11.1 |
gcc g++ | 8.3.1 |
***注意,pytorch 、torchvision版本一定要和cuda一致,不然全部白搭!!!
如果编译失败,请一定先检查一下自己的版本是否一致!
检查的办法也很简单,在python 代码里打印输出 "torch.version.cuda" 和 命令行下打印输出"nvcc -V"要一致!!!
否则会报pytorch环境与编译环境不一致的错!!!
解决的办法也很简单,不要倔强,重装就可以了^ ^
2.下载DCNv2
cd 你准备存dcn包的路径
git clone https://github.com/jinfagang/DCNv2_latest.git
cd ./DCNv2_latest
# 下面两步很重要!否则会报错TORCH_CHECK_ARG’ was not declared in this scope
git init
git checkout fa9b2fd740ced2a22e0e7e913c3bf3934fd08098
# 开始编译
./make.sh
# 直接编译会报错 no moudle named torch,用vim修改一下make.sh,再重新编译就可以了
vim make.sh
我修改成了这样
大家要根据自己的实际情况修改,我在这里解释一下这三行代码的意思
# sudo rm *.so
# sudo rm -r build/ # 这两句是删除之前编译过的文件,因为我之前没有编译过,所以直接把这一步注释掉了
python setup.py build develop # 这里是执行编译,因为我是在虚拟环境里做编译,所有把python3改成了python
修改完成后,先输入esc,然后输入:eq 保存退出就可以了。(不清楚vim操作的,可以查一下菜鸟教程Linux vi/vim | 菜鸟教程)
出现下面的结果就是编译成功了
参考
参考的大佬的帖子:
- pytorch1.8安装:DCNv2在pytorch1.8.1的安装(经过测试)_naca yu的博客-CSDN博客
- pytorch 1.7安装:https://blog.csdn.net/weixin_43253464/article/details/122610737
- 如果gcc版本在5.4以下,可以直接参考deep snake 的安装说明(不能使用高于pytorch1.2的版本):https://github.com/zju3dv/snake/blob/master/INSTALL.md
DCN各个版本的包链接