文章目录
前言
最近用到了CenterNet网络,其中加入了一个dcn模块提高了拟合的精度,但是在使用dcn模块时候编译总是出错,下面记录整个改错的过程。
我使用的环境如下:python3.6 + pytorch1.7 + cuda10.1
首先是找不到nvcc , 我的报错信息如下: /bin/sh: 1: /usr/local/cuda-10.1:/usr/local/cuda-10.0/bin/nvcc: not found 这个显然是没有找到cuda的nvcc , 首先可以在服务器的cuda目录下找一找看有没有nvcc,没有的话就需要考虑重装cuda了(重装cuda网上有很多教程,这里就不赘述)。经过我的检测发现是cuda的环境变量弄错了(具体可以输入 env 查看CUDA_HOME ,看路径是否正确),然后利用export(临时修改,关闭当前shell自动复原)命令修改环境变量:
export CUDA_HOME=/usr/local/cuda-10.1
修改之后再次编译(./make.sh),发现报错如下:error: identifier “THCudaBlas_Sgemv” is undefined,经过查证发现是pytorch版本的问题,有些用pytorch1.4的就直接成功了,我的pytorch版本比较高因此没有成功。
但是,没有关系,有大佬已经更新dcnv2的代码了,链接如下:https://github.com/jinfagang/DCNv2_latest , 亲测有效。
cv之路道阻且长,望诸君共勉。