跑mmdetection的Demo,碰见这个错误:
ImportError: XX/python3.7/site-packages/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so: undefined symbol:
_ZTIN3c1021AutogradMetaInterfaceE
参考github issue:
https://github.com/open-mmlab/mmdetection/issues/4291
查看FAQ:
https://mmdetection.readthedocs.io/en/latest/faq.html#pytorch-cuda-environment
我确定我的CUDA环境没问题,于是我猜也许是mmcv的版本和Pytorch等包的版本不匹配

索性重安装一下:
pip uninstall mmcv-full # (没这个的话, 试试 `pip uninstall mmcv`)
然后根据你的CUDA和PyTorch版本,我的是 CUDA10.2 和 Torch1.6.0
则从这个网站下:
https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/index.html
若你是CUDA11.0,那么网站就是:
https://download.openmmlab.com/mmcv/dist/cu110/torch1.6.0/index.html

一般根据你的Python版本,选择一个最新版的 mmcv_full 就行,下载下来之后,手动安装一下:
比如你下载的:
mmcv_full-1.3.9-cp38-cp38-manylinux1_x86_64.whl
于是:
pip install mmcv_full-1.3.9-cp38-cp38-manylinux1_x86_64.whl
但是一跑,发现版本不兼容,于是选择版本符合的 1.3.7

下载1.3.7之后,运行
pip install mmcv_full-1.3.7-cp38-cp38-manylinux1_x86_64.whl
这次就OK了
总结一下,
- 主要还是没认真看mmdetection的安装文档造成的问题
- 新建mmdetection一般不要clone已有的环境,版本问题比较难受,直接新建比较快(多次建环境经验之谈,不一定对)
在运行MMDetection的Demo时遇到ImportError,问题根源是mmcv的版本与PyTorch不匹配。通过检查CUDA环境并尝试不同版本的mmcv_full进行安装,最终发现1.3.7版本与现有环境兼容。建议在新建mmdetection环境时,遵循官方文档并确保所有包的版本协调,以避免类似问题。
2119

被折叠的 条评论
为什么被折叠?



