Advertisement

【YOLOv7训练】——预训练重使用_yolov7预训练权重

阅读量:
文章目录
  • 更新提醒:2023/04/01更新
  • YOLOv7简介
  • 预训练权重(用不用?用哪个?)
  • 总结

更新提醒:2023/04/01更新

YOLOv7简介

YOLOv7论文链接:[YOLOv7: Trainable bag-of-freebies establishes a new state-of-the-art for real-time object detection]
官方github代码链接:https://github.com/WongKinYiu/yolov7th

YOLOv7于2022.07发布,已被CVPR2023接收!

此贴记录自己使用YOLOv7训练自己数据集时权重使用问题

最后个人建议仅限于YOLOv7及其以上版本,请谨慎考虑是否继续使用。(注意:虽然OTA优化后可提升约三至四倍的速度提升效果)

我知道说三遍,你还是不会听的!!!

那就开始正文了,不罗嗦了!

预训练权重(用不用?用哪个?)

在常规的训练过程中,默认情况下我会优先选择官方提供的权重进行训练。并且v7与v5的代码架构完全一致,并且它们同样能够自动判断并继承主干网络的权重参数。具体来说呢?简单来说就是,在加载预训练权重时,默认情况下会先比较你真正使用主干网络以及预训练权重中包含的主干网络参数有多少层是相同的,在此之后只会加载相同层数的参数进行训练。因此即使后续修改了主干结构也会继续使用预训练得到的参数作为初始值来进行微调(PS:如果有同学认为不需要或者不确定是否可以不用预训练权重的话可以通过实验来验证)。

选择预训练权重
该框架提供了一系列多样化的预训练权重选项。一些架构支持不同的配置模式,请问您指的是哪一种?例如,在代码中可以看到两种常见的实现方式:yolov7.pyyolov7_training.py

在这里插入图片描述

这两个权重该如何选择?两者之间的差异何在?

作者在代码里的解释:

在这里插入图片描述

总结

总结如下:
1、不使用权重并不会产生任何关联性!实则不然,在实际操作中发现无论是否使用权重,在经过300个epoch的训练后结果几乎完全一致(这可能与我在300个epoch后的模型收敛特性有关)。即使在预训练时使用的权重通常会加快收敛速度。
2、引入权重可能导致性能下降(原因尚不明确),但这种现象并非绝对(可能在特定情况下仍能保持稳定)。
3、若时间有限,则可固定选择一个进行训练(建议在有足够时间的情况下分别尝试不同的配置);若有偏好则可直接选择其中一个方案进行优化(这里采用控制变量法来逐步验证不同因素的影响)。

本篇博文的感觉就是,说了等于没说!看官莫怪!

目前,在网上能找到的学习资料种类繁多,并非仅仅局限于免费或付费两种类型。在获取一套较为全面的学习资料之前,并没有立即开始学习其中的第一节课程。然而,在评估这套学习资料的价值性的同时也会向学长请教意见或建议。如果条件允许之后,则会为这一套学习资料制定一份详细的学习规划表,并将规划图与每日进步清单作为主要工具使用。

分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习

网上获取的学习资料浩如烟海,在缺乏系统梳理的情况下,在遇到技术问题时容易停留在表面认识阶段而无法深入探究,则难以实现真正的技术突破

希望这份系统化学习资料的同僚,可以戳该链接免费获取

单兵作战效率高, 但集体合作才能取得更大的成就!无论是有一定IT从业经验的老鸟还是对这一领域充满热情的新手, 都诚挚地邀请您加入我们的平台, 共同进步与成长!我们提供丰富的活动内容, 包括技术交流分享会, 提供各类学习资源以便提升技能, 还有职场吐槽交流区, 欢迎加入我们享受专业大牛带来的内推机会以及专业的面试辅导服务. 无论您是职场达人还是刚入行小白, 我们都会为您提供一个温暖的学习与成长环境.

全部评论 (0)

还没有任何评论哟~