最近想运行一个网络,用到了centernet,需要安装DCNv2,折腾了两天,记录一下填坑的过程。
- 下载
(1)github上最新版的DCNv2源码在"https://github.com/CharlesShang/DCNv2",但是该版本源码不支持PyTorch1.7,如果使其支持PyTorch1.7需要做以下修改:
将DCNv2/src/cuda/dcn_v2_cuda.cu
中所有的THCState_getCurrentStream(state)
替换成c10::cuda::getCurrentCUDAStream()
。
(2)github上有支持PyTorch1.7的源码,“https://github.com/lbin/DCNv2/tree/pytorch_1.7”,可以直接使用。
-
修改
torch/utils/cpp_extension.py
文件
该文件一般在你的python安装目录site-packages
文件夹下,比如我的在conda虚拟环境路径/lib/python3.7/site-packages/torch/utils/cpp_extension.py
。
(1)将源码command = [‘ninja’, ‘-v’]
修改成command = [‘ninja’, ‘–version’]
,注意version
前面是两条短横线。
(2)将源码compiler_info.decode().strip()
修改成compiler_info.decode(‘gbk’).strip()
。 -
编译
在DCNv2
目录下执行./make.sh
即可。 -
错误
在使用conda