配置
环境python=3.7, pytorch=1.7.1
步骤
先创建一个python3.7的环境,然后pip安装pytorch1.7.1
conda create -n DCNv2 python=3.7
pip install torch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
下载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”,可以直接使用。
git clone https://github.com/lbin/DCNv2.git
修改torch/utils/cpp_extension.py文件
该文件一般在你的python安装目录site-packages文件夹下
ps:进入anaconda安装目录搜索cpp_extension.py 即可,找到与咱们刚创建环境对应的目录下的cpp_extension.py文件
将源码command = [‘ninja’, ‘-v’]修改成command = [‘ninja’, ‘–version’],注意version前面是两条短横线。
将源码compiler_info.decode().strip()修改成compiler_info.decode(‘gbk’).strip()。
编译
在DCNv2目录下执行 ./make.sh即可。
./make.sh
可能出错
这个错误通常表示缺少 libtinfo.so.5
共享库文件,导致 torch
无法正确加载。
解决方法
安装libtinfo5
sudo apt update
sudo apt install libtinfo5
更新环境变量
:在安装完 libtinfo
库后,可能需要更新 LD_LIBRARY_PATH
环境变量,使系统能够正确找到共享库。在终端中运行以下命令:
export LD_LIBRARY_PATH="/path/to/your/lib:$LD_LIBRARY_PATH"
将 "/path/to/your/lib" 替换为 libtinfo.so.5
所在的路径。
终端运行以下命令查一下路径
locate libtinfo.so.5
然后再运行./make.sh就好了。安装完成的页面
参考连接:
【windows + python3.7 + pytorch1.7 安装DCNv2】_dcnv2安装_王挣银的博客-CSDN博客