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'
文章目录:
- 1 错误问题描述
- 2 错误原因分析
- 4 解决方法
- 4.1 解决方法一
- 4.2 解决方法二
- 5 PS:比较开心的事情
首先说明一下我的环境:
Ubuntu
:18.04
Cuda
:10.2
Python
:3.8
Pytorch
:1.6.0
torchvision
:0.7.0
yolov5
:v3.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
点了一个赞
和笑脸
!
哈哈哈,来自官方
的点赞
!!!
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠
yolov5 v3.0训练报错: torch.nn.modules.module.ModuleAttributeError: ‘BatchNorm2d‘ object has no attribute相关推荐
- yolov5 v3.0训练出现KeyError错误
欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 yolov5 v3.0训练出现KeyError错误 文章目录: 1 错误原因分析 2 错误解决方式 1 错误原因分析 出 ...
- mmdetection训练报错
mmdetection训练报错. 先说结论吧,coco格式的annotations.json中categories的category_id不能有0(即背景类). 查了好几个小时,都快要疯了,才搞出这个 ...
- HCSC 2022cvpr 训练报错
跑小数据集不出错(3w的数据) 今天换到100w的数据 立马来了问题.目测是显存炸了 纪念训练的第100次 依然没有成功 Traceback (most recent call last): Fi ...
- YOLOv5初级问题与报错汇总
背景: 本人应学校需求掌握机器视觉相关工具,于是零基础跟着大佬的步伐一步一步走.目标检测---教你利用yolov5训练自己的目标检测模型 由于版本更迭等等原因,会遇到很多原作者没有的问题.这里跟随原作 ...
- Tensorrt 7.2.3 转换yolov5 v3.0 pytorch1.8.1 onnx1.6.0
Tensorrt 转换yolov5 安装环境: pytorch 1.8.1 torchvision 0.9.1 onnx 1.6.0 Tensorrt 7.2.3 yolov5 v3.0 l 权重为自 ...
- insightface 切换GPU训练报错解决
insightface代码: https://github.com/deepinsight/insightface 在pytorch训练时,先用gpu1训练,再用gpu2训练,加载gpu1的预训练时报 ...
- python 3.8.0 编译报错 Could not import runpy module 解决方案
环境 CentOS 7 Gcc 4.8.5 Python 3.8.0 相关报错 make build_all CFLAGS_NODIST=" -fprofile-use -fprofile- ...
- wince6.0 编译报错:error C2220: warning treated as error - no 'object' file generated的解决办法
内容提要:wince6.0编译报错:"error C2220: warning treated as error - no 'object' file generated" 原因是 ...
- wince6.0 编译报错:error C2220: warning treated as error - no 'object' file generated的解决办法...
内容提要:wince6.0编译报错:"error C2220: warning treated as error - no 'object' file generated" 原因是 ...
最新文章
- 4.3. postForObject
- php header下载中文名称,PHP Header下载文件在IE文件名中文乱码问题
- RTMPdump(libRTMP) 源代码分析 7: 建立一个流媒体连接 (NetStream部分 2)
- php页面修改器,读取器/修改器
- 查找窗口隐藏了怎么办_如何快速查找网站管理页面
- hadoop之MapReduce的案例(多表关联)
- linux 系统命令之wget和yum和apt-get区别
- notion自建服务器,最详细的NOTION功能模块列表
- JSONP和CORS两种跨域方式的介绍和方案实例
- scrollView滚动原理
- 从四大造字法看文字所承载的文化_汉语汉字所承载的文化信息最好能举例说明...
- 2021 编程语言排行榜
- 【Pyecharts50例】一个Tab下添加多个图表/tab.add()
- (轉貼) 太空探索/液態水存在?火星南極有廣大冰層 可能有生命 (News)
- 计算机学院开学发言,开学典礼 | 计控学院研究生代表发言稿
- linux wifi名称设置中文乱码,无线wifi名称怎么改成中文乱码的方法
- 华为海思芯片 网口烧录详解(翻遍全网资料 结合实际成功操作)
- C++排序之直接插入排序法
- 新风医疗集团就私有化交易达成最终合并协议;​康泰生物成功分离新冠德尔塔变异株 | 医药健闻...
- 高效的vim配置及其插件管理
热门文章
- model1模式变为mv模式,实现业务逻辑和画面的分离
- POJ 3414 Pots(罐子)
- C# 循环语句 for循环
- jquery serialize()无效读取不到数据
- win7如何配置access数据源
- 数据结构 python的书推荐-为什么程序员一定要学数据结构?数据结构书单推荐~...
- python怎么写文件-Python 读写文件
- python 命令-python常见命令
- 儿童编程软件python-Python编程工具pycharm的使用
- python与人工智能编程-最适合人工智能开发的5种编程语言,Python排第一