说明文档
这个代码有点邪门,使用的torch、cuda、显卡版本都有限制。配环境有毒,怼着torch低版本去找合适的cuda、显卡,离谱= =
最终成功版本:
torch0.4.1 + cuda9.2.148 + 显卡2080ti
。
第一次知道显卡版本过高也不行= =。开始在3090上试图复现,整了一天到demo运行后报错:
CUDA kernel failed : no kernel image is available for execution on the device
。检索到的原因大意是:显卡3090算力8.6,而cuda9.2不支持这么高的算力
。试图改torch+cuda版本又会报另一个错(忘记内容,反正不好解决,如果你只有3090显卡,bro加油,期待你解决这部分问题),最终没办法换到2080ti,整了一天搞定!
复现过程遇到的要点问题本文都有记录。对于没有提到的内容,那就积极使用检索工具吧。如有问题欢迎留言/私信。
进展
11.16
:发现一个版本更高的博客,暂时不去尝试,链接
12.06
:尝试后发现这个小哥的方法真能解决问题,大概率可以工作,配置难度 ⬇
12.09
:最终还是回到3090上实验,(B2)CenterNet环境配置-3090-pytorch1.9-cuda11.1(xingyizhou)
配置过程参考资料
github代码链接 (官方代码)
安装步骤的install.md
0、创建虚拟环境
conda create --name CenterNet python=3.6
conda activate CenterNet
conda install pytorch=0.4.1 cuda92 -c pytorch
说明
1、安装torch的代码从原链接的
conda install pytorch=0.4.1 torchvision -c pytorch
改为此处的conda install pytorch=0.4.1 cuda92 -c pytorch
2、配置好torch包之后,打开
~/anaconda3/envs/CenterNet/lib/python3.6/site-packages/torch/nn/functional.py
文件,将py文件的第1254
行的torch.backends.cudnn.enabled
改成False
,没看有什么影响,但反正安装步骤文档这么写就做了。
——[review]上述代码功能是关闭 cudnn 加速模块,一般来说关闭后深度学习计算速度会变慢,但我没有实验验证过。
1、安装COCOAPI
# COCOAPI=/path/to/clone/cocoapi 我是直接放在代码下的 data/目录中
git clone https://github.com/cocodataset/cocoapi.git $COCOAPI
cd $COCOAPI/PythonAPI
make
python setup.py install --user
2、代码下载&编译
git clone https://github.com/xingyizhou/CenterNet
cd CenterNet
pip install -r requirements.txt
cd src/lib/models/networks/DCNv2
./make.sh
2.1 代码编译出错
如下图所示,原因是环境中cuda没有配置好
1、查看linux中的cuda安装位置及版本
ls -l /usr/local | grep cuda
2、因为我用的 shell 是 zsh 所以配置 zsh,反之配置 bash
vim ~/.zshrc
3、zsh中添加路径
export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
4、重新加载zsh
source ~/.zshrc
再次编译,成功!!
3、运行代码
说明
3.1的问题如果前面环境配置配好了就不会遇到
3.2就属于数据加载的问题
3.1 出错:xxx.so: undefined symbol: __cudaRegisterFatB inaryEnd
1、cuda和torch版本不匹配,一开始试图避免配置 torch 0.4.1 的环境,但发现不可避免,配置torch0.4.1+cuda9.2
conda install pytorch=0.4.1 cuda92 -c pytorch
2、验证是否配置成功torch和cuda版本
python -c "import torch;print(torch.__version__)" # 查看torch版本
python -c "import torch;print(torch.version.cuda)" # 查看cuda版本
超赞!成功!!
3.2 FileNotFoundError: [Errno 2] No such file or directory: ‘/home/workspace/wenqianli/CenterNet-master/src/lib/…/…/data/coco/annotations/instances_val2017.json’
找不到数据集,下载数据+创建软链接
2、创建数据集软链接
ln -s source_path goal_path
3、验证demo是不是可以跑通
cd CenterNet-master/src
python main.py ctdet --exp_id coco_resdcn18 --arch resdcn_18 --batch_size 114 --master_batch 18 --lr 5e-4 --gpus 0,1,2,3 --num_workers 16
跑通~~~
文末说明
接下来就要去改用自己数据集&理解代码啦,也许这会是个系列,记录下学习过程
11.11-11.12
:糟心的3090测试,失败
11.13
:2080ti 测试成功,开始整理自己的数据集用于测试如有问题欢迎留言/私信。