• CenterNet复现


    说明文档

    这个代码有点邪门,使用的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
    • 2
    • 3

    说明

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2、代码下载&编译

    git clone https://github.com/xingyizhou/CenterNet
    cd CenterNet
    pip install -r requirements.txt
    cd src/lib/models/networks/DCNv2
    ./make.sh
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.1 代码编译出错

    如下图所示,原因是环境中cuda没有配置好
    在这里插入图片描述

    1、查看linux中的cuda安装位置及版本

    ls -l /usr/local | grep cuda
    
    • 1

    2、因为我用的 shell 是 zsh 所以配置 zsh,反之配置 bash

    vim ~/.zshrc
    
    • 1

    3、zsh中添加路径

    export PATH=/usr/local/cuda-10.2/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
    
    • 1
    • 2

    4、重新加载zsh

    source ~/.zshrc
    
    • 1

    再次编译,成功!!


    3、运行代码

    下载pth文件

    说明
    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
    
    • 1

    2、验证是否配置成功torch和cuda版本

    python -c "import torch;print(torch.__version__)"  # 查看torch版本
    python -c "import torch;print(torch.version.cuda)"  # 查看cuda版本
    
    • 1
    • 2

    超赞!成功!!

    3.2 FileNotFoundError: [Errno 2] No such file or directory: ‘/home/workspace/wenqianli/CenterNet-master/src/lib/…/…/data/coco/annotations/instances_val2017.json’

    找不到数据集,下载数据+创建软链接

    1、COCO数据集下载代码

    2、创建数据集软链接

    ln -s source_path goal_path
    
    • 1

    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
    
    • 1
    • 2

    跑通~~~

    文末说明

    接下来就要去改用自己数据集&理解代码啦,也许这会是个系列,记录下学习过程

    11.11-11.12:糟心的3090测试,失败

    11.13:2080ti 测试成功,开始整理自己的数据集用于测试

    如有问题欢迎留言/私信。

  • 相关阅读:
    前端需要知道的JSON.stringify的正确用法
    Maven
    c++函数指针作为std::map值
    微服务轰炸中:RPC+Dubbo+SpirngBoot+SpringCloud Alibaba+Docker+K8s!
    px、em、rem、百分比的区别
    SpringMVC源码分析 (2022.08.23)
    “国防七校”之一西工大遭境外网络攻击
    R语言基因功能富集分析气泡图
    【Python&语义分割】Segment Anything(SAM)模型交互式分割+掩膜保存(三)
    [Python从零到壹] 七十二.图像识别及经典案例篇之OpenGL入门及绘制基本图形和3D图
  • 原文地址:https://blog.csdn.net/lwqian102112/article/details/127802897