【mmseg—关于mmcv安装问题】

文章讲述了在使用mmseg时遇到的版本兼容性问题,包括如何检查mmseg和mmcv的版本,理解mmcv和mmcv-full的区别,以及如何正确卸载和安装相应版本的mmcv和mmcv-full来解决版本不匹配导致的导入错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 查看你的mmseg版本及各种依赖的版本

(1)问题及原因

  • 问题
    之前训练过的模型,后来论文大修需要加实验,增加了数据集,但是模型用不了,
  • 原因
    mmseg当时的版本是0.26.0,然后出问题,就下载了升级版的依赖包,结果有些参数就加载不了,而且过的时间比较长,自己也忘了当时下载的是什么版本的mmseg,导致依赖包总是对不上。

(2)检查版本

  • mmseg版本
    【mmseg】文件夹➨【version.py】文件
    在这里插入图片描述
    我的mmseg版本是0.26.0版本,现在我看mmseg最新是1.0.0。
  • mmcv版本
    【mmseg】文件夹 ➨【_init.py】文件
    在这里插入图片描述
    可以看到我的MMCV版本要求。

2. 安装

我在加载原来模型的时候,发现mmcv包版本不对,让安装更高版本的,结果安装后,还是不对,显示如下错误。

ImportError: cannot import name ‘revert_sync_batchnorm’ from ‘mmcv.cnn.utils’ (/home/wanghui/anaconda3/envs/mmseg/lib/python3.8/site-packages/mmcv/cnn/utils/init.py)

说明版本不对。因为我安装的mmcv和mmcv-full都比较乱,也不对应。具体看下他俩的区别。

(1)mmcv与mmcv-full的区别

MMCV 有两个版本:

  • mmcv-full: 完整版,包含所有的特性以及丰富的开箱即用的 CPU 和 CUDA 算子。注意,完整版本可能需要更长时间来编译。

  • mmcv: 精简版,不包含 CPU 和 CUDA 算子但包含其余所有特性和功能,类似 MMCV 1.0 之前的版本。如果你不需要使用算子的话,精简版可以作为一个考虑选项。

包名包版本<2.0包版本>=2.0
mmcv-full包含 CUDA 算子
mmcv不包含 CUDA 算子包含 CUDA 算子
mmcv-lite不包含 CUDA 算子

(2)卸载及安装

刚开始我是没卸载,都是直接安装对应版本,但是安装后还是不对,出现错误(这个错误有人用方法未引入“mmcv._ext”模块,但是我没用,我用的是下面的方法解决的,其实根本原因还是mmcv的版本问题):

ModuleNotFoundError: No module named ‘mmcv._ext’

以及错误:

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

原因大概是我没有卸载干净,主要是每次只卸载mmcv或mmcv-full,后来参考 AssertionError推荐

  • 卸载mmcv和mmcv-full
# 两个都卸载
pip uninstall mmcv
pip uninstall mmcv-full

  • 查看torch和cuda版本
python -c 'import torch;print(torch.__version__)'

torch:1.12.0;cuda: 11.3

pip install mmcv==1.7.0

说明: mmcv的版本安装了1.7.0.但是mmseg要求低于1.7.0,所以安装1.6.2.

# 安装mmcv
pip install mmcv==1.6.2 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.12/index.html
# 安装mmcv-full
pip install mmcv-full==1.6.2 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.12/index.html

参考:mmcv与cuda,pytorch版本匹配要求

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值