向Yolov8添加注意力机制报错:“Keyerror”的解决办法

导致问题的原因

在我们向Yolov8中添加注意力机制时,即便我们在克隆的项目的nn/modules/init.py以及nn/tasks.py中正确的导入了注意力机制,仍然会报错:“Keyerror”,似乎注意力机制仍然没有正确的导入。

实际上这是因为我们在配置虚拟环境时,使用了代码

pip install ultralytics

在这个过程中,“ultralytics”包会被安装到虚拟环境中。在这里我们一定要注意区分,虚拟环境中的“ultralytics”以及我们克隆的代码的“ultralytics”。前者是因为配置虚拟环境而安装的,后者是我们从Github上克隆的工程。

当我们在克隆的项目中导入了注意力机制时,我们并没有在虚拟环境的“ultralytics”包中导入注意力机制。但是在项目文件的init.py中,仍然会默认从虚拟环境的“ultralytics”中去寻找注意力机制。

大家可以通过这个包的修改日期判断出这一点。因此即便我们正确的在克隆的项目中导入了注意力机制,仍然会反复报错“Keyerror”。

问题的解决办法

方法一

在虚拟环境中对注意力机制进行导入。请参考这位博主的解决方法:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40941950/article/details/131620027
————————————————

方法二

在我们所克隆的项目文件中的init.py等文件中对导入的包进行修改。请参考这位up主的解决方法:

【【yolov8-09】全网最详细yolov8添加注意力机制-极端简单】 https://www.bilibili.com/video/BV1Jm411k7sa/?share_source=copy_web&vd_source=6e7335bfa47b4e851a609b8b0d58f1b9

方法三

使用其他的配置环境方法,在这里我们不直接采用

pip install ultralytics

的方法进行环境配置,而是首先对Github上的工程代码进行克隆,我们假设克隆后的路径为D:\ultralytics-main。

我们通过

pip install -e D:\ultralytics-main

来配置环境,在配置环境后,我们在Pycharm的终端进入虚拟环境,并且使用指令:

pip list

查看后可以发现,此时“ultralytics”包的可编辑路径已经变为了我们所克隆的项目路径。

本方法来自用户@qq_42983805

撰写本博客是因为我被这个问题困扰了很久。希望能够对这种常见问题的解决方法做一个汇总。如有侵权请联系我删除。

  • 11
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值