openmmlab提供了MIM来统一安装其多个mm功能框架包https://github.com/open-mmlab/mim,但是需要不借助MIM安装时,这里怎么确定要安装什么版本的mmcv和mmdet、mmdet3d、mmseg,在openmmlab网站主页上没有一个容易能找到的完整表格页面来详细记录他们之间的版本对应关系,好不容易找到个Faq页面,里面却只记录了最新的mmcv2.x和其它组件之间的版本,对历史1.x版居然都不记录!反正openmmlab对其mm序列多个功能框架包之间的完整历史版本的对应关系的说明就没有一个完整的清单列表或者统一查询的地方,每次使用基于mmdetection3D框架的模型代码时安装mm相关的包需要去多个页面耐心找!
例如我需要安装对应于CUDA11.6和pytorch1.12.0的mm序列包,是从这里 安装 MMCV — mmcv 2.1.0 文档
点击左下方的Read the Docs 的右边点击可以切换版本,选择v1.7.0,
进入
https://mmcv.readthedocs.io/zh-cn/v1.7.0/get_started/installation.html
才找到和CUDA11.6+pytorch1.12对应的mmcv最低版是1.6.0 !
找到了最基础的mmcv该安装什么版本后,再查找其它框架包该安装什么对应的版本,mmdetection从Prerequisites — MMDetection 2.24.0 documentation
这里找到了mmcv1.6.0对应需安装 2.24.0版mmdetection
对于mmsegmenation,在这里找到了对应的版本说明:
常见问题解答(FAQ) — MMSegmentation 0.30.0 文档
对于mmdetection3d,首选找到mmdetection3d v1.1.0版本对应的安装说明页面:
Get Started — MMDetection3D 1.1.0 documentation
但是这里推荐的是mmcv2.0,不符合我要的1.6.0,再找紧挨的的版本v1.0.0rc01
Prerequisites — MMDetection3D 1.0.0rc1 documentation
(注意的版本的网址末尾没有/get_started.html需要删掉),里面提到的最高版mmcv是1.5.0
所以估计v1.0.0.rc4应该支持mmcv1.6.0,但是不确定,继续网上搜索,最后找到了mmdet3d dev Faq里的说明:
FAQ — MMDetection3D 1.0.0rc4 documentation
确认了mmdetection3d v1.0.0rc4和mmcv1.6.0是匹配的,但是这个表格里有个错误就是,说mmsegmentation的0.20.0版本和mmcv1.6.0-1.7.0匹配:
实际上不是这样的,安装后运行时会报错:
import mmseg
File "/opt/conda/lib/python3.8/site-packages/mmseg/__init__.py", line 58, in <module>
assert (mmcv_min_version <= mmcv_version <= mmcv_max_version), \
AssertionError: MMCV==1.6.0 is used but incompatible. Please install mmcv>=(1, 3, 13, 0, 0, 0), <=(1, 5, 0, 0, 0, 0).
需要安装mmsegmenation0.24.0以上版本才行!