本文总结
最近经常使用mmdetection完成一些检测任务,在这里记录一些因为环境问题踩的坑,本人水平有限,写的不好的地方希望大家多多指教:)
问题1:ModuleNotFoundError: No module named ‘mmcv._ext’
解决措施:
pip uninstall mmcv mmcv-full
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
MMCV_WITH_OPS=1 pip install -e .
问题2:RuntimeError: CUDA error: invalid device function (NMSCUDAKernelLauncher at ./mmcv/ops/csrc/pytorch/nms_cuda.cu:50)&[1] 52516 segmentation fault (core dump
在运行train.py的时候提示这个错误,我感觉大概率是因为环境中的cuda和pytorch,mmcv等的版本不匹配,我是下面一个思路去重新安装环境的:
1.首先获取到当前mmdet和mmcv的版本,看是否匹配
现在我的mmcv版本为1.2.6,有点太高了,保险起见我把mmcv版本按照上表的要求降到了1.0.2(命令:
pip install mmcv==1.0.2
)
2.根据当前mmcv版本需要的cuda版本在官网中找到合适的编译命令
我之前的cuda版本为10.0,但是官网中没有提供关于这个版本的编译命令,因为我还安装了cuda10.1。故按照官网指示我运行了如下命令:
pip install mmcv-full==1.0.2 -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.3.0/index.html
运行之后再次运行 train.py时开始了正常训练,查看版本已成功修改:)