AttributeError: Can‘t get attribute ‘SPPF‘

1.环境:训练自己的YOLOv5-5.0模型。

2.报错原因:预训练权重的版本与源码框架不匹配,在下面的网站中找到对应的YOLOv5-5.0的版本:

Releases · ultralytics/yolov5 (github.com)

将5.0下的YOLOv5s.pt拷贝至weights文件夹下,仍然报上述错误,于是将YOLOv5s6.pt拷贝至对应文件夹下,bug消失。

:有一种下载对应预训练权重的方式:修改util/文件夹下google_utils.py文件的对应行为response=requests.get(f'https://api.github.com/repos/{repo}/releases/tags/v5.0').json()

3.根据github官网上的描述,

  • YOLOv5-P5 models (same architecture as v4.0 release): 3 output layers P3, P4, P5 at strides 8, 16, 32, trained at --img 64
  • YOLOv5-P6 models: 4 output layers P3, P4, P5, P6 at strides 8, 16, 32, 64 trained at --img 1280

可知,YOLOv5-P5的网络结构与YOLOv5-4.0的网络结构相似,都是三个输出层,而YOLOv5-P6多了一个输出层,增加了对更大目标的检测效果。

4.另:看到还有一种解决方式就是更改项目源码,即在model/common.py添加SPPF类,个人觉得这种方式像是间接地变成了训练YOLOv5-6.0网络模型,不过也可以解决问题。

5.参考文章

AttributeError: Can't get attribute 'SPPF' · Issue #5175 · ultralytics/yolov5 (github.com)icon-default.png?t=M276https://github.com/ultralytics/yolov5/issues/5175

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值