YOLOv8 | 添加注意力机制报错KeyError:已解决,详细步骤

2024-03-15 19:36

本文主要是介绍YOLOv8 | 添加注意力机制报错KeyError:已解决,详细步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

添加注意力机制报错

报错的原因

注意事项

解决错误流程

代码分享


⭐欢迎大家订阅我的专栏一起学习⭐

🚀🚀🚀订阅专栏,更新及时查看不迷路🚀🚀🚀
       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 

如果你看了教程以后还是不能实现注意力的添加,可以关注我,后续我会持续分享不同的注意力机制代码。

如果你还要其他的需求,请在评论区留言,也欢迎各位小伙伴在留言区讨论

这篇关于YOLOv8 | 添加注意力机制报错KeyError:已解决,详细步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/813044

相关文章

python安装whl包并解决依赖关系的实现

《python安装whl包并解决依赖关系的实现》本文主要介绍了python安装whl包并解决依赖关系的实现,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、什么是whl文件?二、我们为什么需要使用whl文件来安装python库?三、我们应该去哪儿下

MySQL安装时initializing database失败的问题解决

《MySQL安装时initializingdatabase失败的问题解决》本文主要介绍了MySQL安装时initializingdatabase失败的问题解决,文中通过图文介绍的非常详细,对大家的学... 目录问题页面:解决方法:问题页面:解决方法:1.勾选红框中的选项:2.将下图红框中全部改为英

Java集合中的List超详细讲解

《Java集合中的List超详细讲解》本文详细介绍了Java集合框架中的List接口,包括其在集合中的位置、继承体系、常用操作和代码示例,以及不同实现类(如ArrayList、LinkedList和V... 目录一,List的继承体系二,List的常用操作及代码示例1,创建List实例2,增加元素3,访问元

Nginx实现动态封禁IP的步骤指南

《Nginx实现动态封禁IP的步骤指南》在日常的生产环境中,网站可能会遭遇恶意请求、DDoS攻击或其他有害的访问行为,为了应对这些情况,动态封禁IP是一项十分重要的安全策略,本篇博客将介绍如何通过NG... 目录1、简述2、实现方式3、使用 fail2ban 动态封禁3.1 安装 fail2ban3.2 配

SpringBoot整合easy-es的详细过程

《SpringBoot整合easy-es的详细过程》本文介绍了EasyES,一个基于Elasticsearch的ORM框架,旨在简化开发流程并提高效率,EasyES支持SpringBoot框架,并提供... 目录一、easy-es简介二、实现基于Spring Boot框架的应用程序代码1.添加相关依赖2.添

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2