mmcv的逆天兼容性

首先,按照文档安装,会自动安装mmcv-full==1.7.2版本

pip install -U openmim
mim install "mmcv-full<2.0.0"

运行代码后报错:

AssertionError: MMCV==1.7.0 is used but incompatible. Please install mmcv>=2.0.0rc4, <2.2.0.

错误原因在于该版本不兼容,至少安装2.0.0rc4版本的,重新安装

pip install mmcv-full==2.0.0rc4

运行代码后,再次报错:

Cannot import name 'Config' from 'mmcv'

错误原因在于mmcv在2.0.x版本之后,Config 等一些训练相关的模块被删除了

出自 v2.0.0 — mmcv 2.0.1 文档
OpenMMLab 团队于 2023 年 4 月 6 日发布 MMCV v2.0.0。在 2.x 版本中,它有以下重大变化:

(1)删除了以下组件:

  • mmcv.fileio 模块,删除于 PR #2179。在需要使用 FileIO 的地方使用 mmengine 中的 FileIO 模块
  • mmcv.runnermmcv.parallelmmcv.enginemmcv.device,删除于 PR #2216
  • mmcv.utils 的所有类(例如 ConfigRegistry)和大部分函数,删除于 PR #2217,只保留少数和 mmcv 相关的函数
  • mmcv.onnxmmcv.tensorrt 模块以及相关的函数,删除于 PR #2225
  • 删除 MMCV 所有的根注册器并将类或者函数注册到 MMEngine 的根注册器

(2)新增了 mmcv.transforms 数据变换模块

(3)在 PR #2235 中将包名 mmcv 重命名为 mmcv-litemmcv-full 重命名为 mmcv。此外,将环境变量 MMCV_WITH_OPS 的默认值从 0 改为 1

这也能理解,为什么配置mmcv环境时的混乱不堪了

# 相关代码
import mmcv
import torch

from mmengine.config import Config, DictAction
from mmcv.cnn import fuse_conv_bn
from mmengine.runner import (get_dist_info, init_dist, load_checkpoint,
                         wrap_fp16_model)

from mmdet.apis import multi_gpu_test, single_gpu_test
from mmdet.datasets import (build_dataloader, build_dataset,
                            replace_ImageToTensor)
from mmdet.models import build_detector
from mmdet.utils import (build_ddp, build_dp, compat_cfg, get_device,
                         replace_cfg_vals, setup_multi_processes,
                         update_data_root)

只能将报错的代码,逐步替换为2.0后版本的模块

参考资料:
Cannot import name ‘Config’ from ‘mmcv’ (unknown location)
问题解决——MMCV报错:ImportError: cannot import name ‘print_log‘ from “mmcv “

其中,报错内容:

ImportError: cannot import name 'Config' from 'mmcv'
ImportError: cannot import name 'get_dist_info' from 'mmengine.runner'
ImportError: cannot import name 'print_log' from 'mmcv'

后续,卸载安装了很多次,都没解决

pip uninstall mmcv
pip uninstall mmcv-full

然后摆烂了几天之后,重新安装,莫名其妙就好了。。。
且流程跟之前一模一样。。。

pip install -U openmim
mim install "mmcv-full<2.0.0"

# 之后再安装requirement文件
pip install -r requirements.txt

再之后按照文档继续安装,然后就正常运行了

coco数据集验证样例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1ce2ou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值