yolov5 v3.0训练报错: torch.nn.modules.module.ModuleAttributeError: ‘BatchNorm2d‘ object has no attribute

欢迎大家关注笔者,你的关注是我持续更博的最大动力


原创文章,转载告知,盗版必究


yolov5 v3.0版本训练报错:torch.nn.modules.module.ModuleAttributeError: 'BatchNorm2d' object has no attribute '_non_persistent_buffers_set'

文章目录:


首先说明一下我的环境:

  • Ubuntu18.04
  • Cuda10.2
  • Python3.8
  • Pytorch1.6.0
  • torchvision0.7.0
  • yolov5v3.0

1 错误问题描述

1、在使用yolov5 v3.0版本的时候,使用如下的命令进行训练

python train.py --img 640 --batch 16 --epochs 300 --data ./data/my_data.yaml --cfg ./models/yolov5l.yaml --weights ./weights/yolov5l.pt --device 1

2、然后报错:torch.nn.modules.module.ModuleAttributeError: 'BatchNorm2d' object has no attribute '_non_persistent_buffers_set'

在这里插入图片描述

2 错误原因分析

我在官网的issues中查看了,很多答案说是pytorch的版本问题,但是yolov5在几个月之内已经发布了三个版本了:

  • yolov5 v1.0
  • yolov5 v2.0
  • yolov5 v3.0

至于每个版本有什么不同,大家自己去参考:yolov5 的GitHub主页

官网的issues中给出的解决方法有:

  • 把pytorch的版本降低到torch1.5.1,我在yolov5 v3.0中尝试不可以,yolov5 v3.0必须torch的版本必须是torch>=1.6.0(从提交的issues时间可以看到,用这种方法的yolov5版本应该是低于v3.0的)
  • 使用低版本的yolov5,例如使用yolov5 v1.0,然而我就是想要使用yolov5 v3.0版本
  • 官网也说这可能是torch1.6.0中的bug,但是并没有给出解决的方法

后面我想起来可能的问题,我在用yolov5 v3.0 中使用的预训练模型yolov5l.pt是yolov5 V1.0的中下载的,因为预训练的模型yolov5l.pt下载的比较慢,而我又比较懒,所以我把yolov5 v1.0中下载的yolov5l.pt拷贝到yolov5 v3.0中,因此出现错误:torch.nn.modules.module.ModuleAttributeError: 'BatchNorm2d' object has no attribute '_non_persistent_buffers_set'

4 解决方法

4.1 解决方法一

直接在yolov5 v3.0中重新下载一下yolov5l.pt的预训练模型

然后训练就正常了:
在这里插入图片描述

4.2 解决方法二

官方issues给出的解决方法

原则上,你可以简单地为每个YOLOv5模块添加一个非持久缓冲区集来解决这个问题,但是我建议使用最新的模型来代替。添加代码如下:

for k, m in model.named_modules():
	m._non_persistent_buffers_set = set()  # pytorch 1.6.0 compatability

注意:

这个方法我没有尝试,我问题已经解决了,如果你要尝试请自行尝试!

5 PS:比较开心的事情

  • 我在官网的issues中描述了我的遇到的问题,大概时间:20200825 上午11:00
  • 然后大概过了十几分钟,官网作者glenn-jocher很快就给了我回复
  • 后面给出了一些指导性的意见,就是上面的方法二(作者不建议这种方法,我也就没有尝试)
  • 我在官网提交的issues

然后,我看到了glenn-jocher我提交的issues点了一个笑脸!

哈哈哈,来自官方点赞!!!

在这里插入图片描述


在这里插入图片描述




在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:白松林 返回首页