安装DCNv2 (可变形卷积)踩坑记录
1. 普遍方法(可以解决大多数问题)
首次安装出现的问题
类似下面这样
raise RuntimeError(message) from e RuntimeError: Error compiling objects for extension
由于需要较新的torch库,所以没办法降低太多torch版本
可能原因及方法
1) torch版本太高(>torch 2.0.1)
可以降低torch版本,同时保证降低版本后cuda版本也匹配;
列举一些DCNv2的项目库:
原始项目:https://github.com/CharlesShang/DCNv2
(只有低版本的pytorch安装)
推荐 :https://github.com/lbin/DCNv2
有较多版本供选择:
我在torch 2.0.1版本上可以用,算是比较新了
也是一个库: https://github.com/lucasjinreal/DCNv2_latest
有博主不推荐,我懒得试了
注:没试过在太高版本下的安装(>torch 2.0.1),大家也可以用相近版本的项目库的代码在高版本torch上尝试。
2)torch版本不高(<=torch 2.0.1),但安装不成功
可能torch和cuda版本不对应,上网检查一下
import torch
print(torch.__version__)
print(torch.cuda.is_available()) # cuda是否可用
print(torch.version.cuda) # cuda版本
举例:
3)前面的都对,但还不成功
可能和torch有关的库是用conda和pip混合安装的,导致出错
用命令检查一下库的安装,卸载统一用pip
conda list
2. 我遇到的问题
上面遇到的都对,但就是不行。后面在多个环境下尝试,反复拉扯,终于可以了。
发现我有这么两个包,这两个是用conda安装的:
cudatoolkit
cuda-nvcc
于是我在一个本来可以安装DCNv2的环境安装这两个包后,DCNv2就不能再安装了。于是我卸载了这两个包,
conda remove cudatoolkit
conda remove cuda-nvcc
终于在 pytorch2.0.1+cuda118 成功。