目录
添加注意力机制报错
报错的原因
注意事项
解决错误流程
代码分享
⭐欢迎大家订阅我的专栏一起学习⭐
🚀🚀🚀订阅专栏,更新及时查看不迷路🚀🚀🚀
YOLOv5涨点专栏:http://t.csdnimg.cn/2Ou4D
YOLOv8涨点专栏:http://t.csdnimg.cn/3qYOA
💡魔改网络、复现论文、优化创新💡
因为yolov8封装的很好,只需要配置环境,不用看源码就可以直接进行训练,但是这也导致了一些问题,比如添加注意力机制的时候会导致一些keyerror的错误。下面我我们就详细说一下这个错误应该怎么解决。
添加注意力机制报错
以添加GAM注意力机制为例子进行讲解
在添加注意力机制的代码,执行启动命令后
yolo detect train model=yolov8_GAM.yaml
会出现如下报错
Traceback (most recent call last):File "/usr/local/bin/yolo", line 8, in <module>sys.exit(entrypoint())File "/usr/local/lib/python3.8/dist-packages/ultralytics/cfg/__init__.py", line 541, in entrypointmodel = YOLO(model, task=task)File "/usr/local/lib/python3.8/dist-packages/ultralytics/models/yolo/model.py", line 23, in __init__super().__init__(model=model, task=task, verbose=verbose)File "/usr/local/lib/python3.8/dist-packages/ultralytics/engine/model.py", line 140, in __init__self._new(model, task=task, verbose=verbose)File "/usr/local/lib/python3.8/dist-packages/ultralytics/engine/model.py", line 211, in _newself.model = (model or self._smart_load("model"))(cfg_dict, verbose=verbose and RANK == -1) # build modelFile "/usr/local/lib/python3.8/dist-packages/ultralytics/nn/tasks.py", line 287, in __init__self.model, self.save = parse_model(deepcopy(self.yaml), ch=ch, verbose=verbose) # model, savelistFile "/usr/local/lib/python3.8/dist-packages/ultralytics/nn/tasks.py", line 837, in parse_modelm = getattr(torch.nn, m[3:]) if "nn." in m else globals()[m] # get module
KeyError: 'GAM_Attention'
报错的原因
这是因为我们训练的时候就已经配置好了所需要的环境,而在训练的时候运行的代码,就是调用的原来的环境中配置好的代码,因此即使添加注意力机制以后还是会报错。
因此我们要解决这个问题的办法就是重新配置环境。
注意事项
因为涉及到ultralytics的不同版本,因此建议在docker中进行下面的操作,因为在不同的容器中不会改变镜像中的环境。
解决错误流程
建议读一下上面的注意事项。
我们已经找到了错误的原因,解决起来就容易很多
步骤1:卸载之前的环境
在对应的环境中执行下面的代码
pip uninstall utralytics
步骤2:重新安装环境
下载文章末尾的代码,切换到文件夹ultralytics的目录下面
执行命令
pip install . # 你没看错,我没打错,这里就是有一个.
等待环境安装完成后执行启动命令,发现出现了yolov8的结构,说明环境执行成功,结构内,有你自己修改的模块名称,则表示添加注意力机制成功
注意,以下代码只是添加了GAM注意力机制,如果你需要添加其他的注意力机制还是有可能报错的 。
代码分享
链接: https://pan.baidu.com/s/1pqAJ_JaJqF6nl4cFPm-Png?pwd=puu1 提取码: puu1
如果你看了教程以后还是不能实现注意力的添加,可以关注我,后续我会持续分享不同的注意力机制代码。
如果你还要其他的需求,请在评论区留言,也欢迎各位小伙伴在留言区讨论