yolov8模型更换为yoloV11模型后报错Can’t get attribute ‘C3k2’ on <module ‘ultralytics.nn.modules.block
File “D:\anaconda\envs\pytorch\lib\site-packages\ultralytics\utils\patches.py”, line 86, in torch_load
return _torch_load(*args, **kwargs)
File “D:\anaconda\envs\pytorch\lib\site-packages\torch\serialization.py”, line 1097, in load
return _load(
File “D:\anaconda\envs\pytorch\lib\site-packages\torch\serialization.py”, line 1525, in _load
result = unpickler.load()
File “D:\anaconda\envs\pytorch\lib\site-packages\torch\serialization.py”, line 1515, in find_class
return super().find_class(mod_name, name)
AttributeError: Can’t get attribute ‘C3k2’ on <module ‘ultralytics.nn.modules.block’ from ‘D:\\anaconda\\envs\\pytorch\\lib\\site-packages\\ultralytics\\nn\\modules\\block.py’>
研究了一下主要原因还是老版本的Ultralytics不识别新版本的yolo导致的
解决办法:
pip install ultralytics==8.3.28
pip install ultralytics==8.3.28 -i https://pypi.tuna.tsinghua.edu.cn/simple
(第1个如果没速度,选择第2个使用国内清华源安装的命令)
注意这个命令会帮助你把所有相关的包全部升级到匹配的新版本,如果害怕影响其他项目,可以考虑创建一个新的环境再下载最新的Ultralytics
pip install ultralytics==8.3.28
官方建议在PyTorch>=1.8的Python>=3.8的环境中安装Ultralytics。
更新完毕后尝试,发现yolov11正常运行,且不影响原有yolov8模型的运行。