本文主要是介绍【代码问题】mmcv+mmseg版本升级报错,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
真的离谱,狗屎库那么难维护
0.安装
我的版本
mmcv-full 1.7.2
mmengine 0.10.3
mmsegmentation 1.2.2
安装mmcv:
pip install -U openmim
mim install "mmcv>=2.0.0rc1"
# 或者
mim install mmcv
但是出现各种报错,所以我把full也安装了:
mim install mmcv-full
安装mmseg:
pip install mmsegmentation
当然很多都是版本更新维护的问题,所以降版本也可以达到效果,我这里是对应新版本怎么修改。
1. ImportError: cannot import name ‘get_root_logger’ from ‘mmseg.utils’
新版本的mmseg的utils没有get_root_logger
把代码从:
from mmseg.utils import get_root_logger
logger = get_root_logger()
改成:(这是直接用mmcv的logging,参考报错解决方案
import logging
logger = logging.getLogger()
2.ModuleNotFoundError: No module named ‘mmseg.ops’
mmseg.ops迁移到了mmseg.models.utils中,所以直接 from mmseg.models.utils import xx
即可。
from mmseg.models.utils import resize
3.安装时卡在Building wheel for mmcv_full (setup.py) / Building wheel for mmcv (setup.py)
如果使用了pip安装会出现上述情况,终止掉ctrl+c,然后使用mim安装:
mim install mmcv-full
4.ModuleNotFoundError: No module named ‘mmcv.runner’ / ImportError: cannot import name ‘print_log’ from ‘mmcv’
直接补上mmcv-full,安装好之后大概率就无了。
不行就把mmcv都卸载掉重新安装。
5.ImportError: cannot import name ‘IS_MLU_AVAILABLE’ from ‘mmcv.utils’ (unknown location)
安装mmcv即可。不行卸掉全部(mmcv+mmcv-full)重新安装。
6.ModuleNotFoundError: No module named ‘mmseg.core’
core包被删了。
我这个报错是引入build_pixel_sampler
时报的错,所以新位置:
from mmseg.structures import build_pixel_sampler
add_prefix
:
from mmseg.utils import add_prefix
注意:可以这样,直接在这里 api 和 这里 找:ctrl+F 输入你要用的api,就知道新的在哪怎么引入了。
迁移
mmseg迁移
mmseg.core
在 OpenMMLab 2.0 中,core 包已被删除。core 的 hooks 和 optimizers 被移动到了 mmseg.engine
中,而 core 中的 evaluation 目前是 mmseg.evaluation
。
mmseg.ops
ops 包含 encoding 和 wrappers,它们被移到了 mmseg.models.utils
中。
这篇关于【代码问题】mmcv+mmseg版本升级报错的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!