2025-5-8-mmcv低版本报错解决大全
本来是想跑FoodSAM的实验的。
(带有本人强烈怨念的主观色彩)但是我又要开始吐槽了:这什么程序啊?为什么24年的工作居然是22年写的,所以转投不知道多少次了才中。
然后就是神奇的配置:cuda版本居然是101,哥们不是……
这导致配套的使用的mmcv,mmseg等库也是上古时代的版本了。我的cuda版本也不是很新,也就是117,我试了两天,还是無理です。
mmcv=1.3.0,mmseg=0.11.0
而现在的版本都mmcv=2.2.0,mmseg=1.2.2.
大版本号都改了啊喂,里面很多东西都移除了。
我改了两天,报了无数的错误,实在是苦手……
1 | (CC) wyl@aa-ESC4000:~/expr_SS/FoodSAM-main$ python FoodSAM/semantic.py --img_path /home/wyl/expr_OD/餐盘/001.jpeg --output /home/wyl/expr_OD/exm_FoodSAM.jpg |
这个是无法处理的。
1 | (CC) wyl@aa-ESC4000:~/expr_SS/FoodSAM-main$ python FoodSAM/semantic.py --img_path /home/wyl/expr_OD/餐盘/001.jpeg --output /home/wyl/expr_OD/exm_FoodSAM.jpg |
这个要重装mmcv-full。
1 | (CC) wyl@aa-ESC4000:~/expr_SS/FoodSAM-main$ python FoodSAM/semantic.py --img_path /home/wyl/expr_OD/餐盘/001.jpeg --output /home/wyl/expr_OD/exm_FoodSAM.jpg |
这个是因为build_dataloader
从新的版本中移除了,请注意是移除了而不是换地方放了。
1 | (CC) wyl@aa-ESC4000:~/expr_SS/FoodSAM-main$ python FoodSAM/semantic.py --img_path /home/wyl/expr_OD/餐盘/001.jpeg --output /home/wyl/expr_OD/exm_FoodSAM.jpg |
好的,请选择重装mmcv或是mmseg,反正二者的版本是怎么也无法匹配的。
1 | gcc -pthread -B /home/wyl/anaconda3/envs/FoodSAM/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/tmp/pip-install-8oh_rf2o/mmcv-full_5092720098564a44b2c8c96285f0e4eb/mmcv/ops/csrc -I/home/wyl/anaconda3/envs/FoodSAM/lib/python3.7/site-packages/torch/include -I/home/wyl/anaconda3/envs/FoodSAM/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/wyl/anaconda3/envs/FoodSAM/lib/python3.7/site-packages/torch/include/TH -I/home/wyl/anaconda3/envs/FoodSAM/lib/python3.7/site-packages/torch/include/THC -I/home/wyl/anaconda3/envs/FoodSAM/include/python3.7m -c ./mmcv/ops/csrc/pytorch/box_iou_rotated_cpu.cpp -o build/temp.linux-x86_64-3.7/./mmcv/ops/csrc/pytorch/box_iou_rotated_cpu.o -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=_ext -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11 |
这个也是mmcv的版本无法与pytorch匹配。选择升级mmcv或是降低pytorch。
此外,还有两个比较简单的报错是:
init_segmentor
,inference_segmentor
在新的版本中变成了init_model
,inference_model
1
2from mmseg.apis import inference_segmentor, init_segmentor
# from mmseg.apis import inference_model, init_modelMMDataParallel
被移除。MMDistributedDataParallel
被移到其他库中。1
2
3# from mmcv.parallel import MMDataParallel, MMDistributedDataParallel
from torch.nn.parallel import DataParallel
from mmengine.model import MMDistributedDataParallel
果咩纳塞,本人实在是难绷,遂放弃。如果要是有人根据我的报错解决了问题,且能够正常运行,请在评论区滴滴我,谢谢!