yolov5-6.1版本功能测试(全)

yolov5-6.1版本功能测试(全)

此文段所述性能指标仅对此次数据具有参考价值,后续仍需佐证此观点
文章主题:yolov5-6.1版本性能对比,以及如何提升性能最佳,结果出乎意料,发现最优optimizer,最优scheduler。

文章目录

一、过往版本性能如何?

示例:往期使用的框架为yolov5-3.0版本,时隔一年,老版本已经再打不起精神,在Ai时代的推演下,当时的呼声早已石沉大海。
话不多说,直接上图,先记住3.0版本的性能:

yolov5-6.1版本功能测试(全)

效果很不错,先总结一下结果:
mAP = 0.995, recall = 1.0 , precisions(p) = 0.713 ,
cla-loss = 7.2e-4 , Boxloss = 5.5e-3 , obj-loss = 6.2e-3。

接下来,6.1版本走一波,然后做对比分析

; 二、yolov5-6.1版本测试

1.exp1_原始代码无改动(红线)

代码下载:
https://github.com/ultralytics/yolov5/commit/3752807c0b8af03d42de478fbcbf338ec4546a6c

运行条件:GPU环境=Teslav100_32g , 数据样本量4000张图片 ,label引用量 = 11458  ,epochs = 200,
 imagesize = 640 , lr = 0.01, lrf = 0.01  ,optim = SGD ,

yolov5-6.1版本功能测试(全)

yolov5_6.1各项参数:
mAP = 0.995, recall = 0.99 , precisions(p) = 0.989 ↑ ,
cla-loss = 4.08e-4 ↑, Boxloss = 6.6e-3 , obj-loss = 5.3e-3 ↑。
yolov5_3.0参数对比:
(mAP = 0.995, recall = 1.0 , precisions(p) = 0.713 ,
cla-loss = 7.2e-4 , Boxloss = 5.5e-3 , obj-loss = 6.2e-3。)

对比之下,在召回率相同的的情况下,大大提升30%精准度。损失值也降低1-3个点。

2.exp2_原始基础上新增cos-lr(退火余弦学习率迭代)(黄线)

代码如下(在后面将默认打开):

parser.add_argument('--cos-lr', action='store_true', help='cosine LR scheduler',
 default=True)

此处唯一的不同在于动态学习率迭代的不同所导致!

yolov5-6.1版本功能测试(全)

增加cos-lr不仅在最终的可视化图像上略好,而且在混淆矩阵上来看,效果收效良好:

yolov5-6.1版本功能测试(全)

混淆矩阵效果对比:(图一为关闭 cos-lr scheduler )仍然会有样本混淆。

yolov5-6.1版本功能测试(全)

(图二为打开 cos-lr scheduler )

yolov5-6.1版本功能测试(全)

3.exp3_打开冻结主干网络(绿线),降低学利率初始值(橙线)

为了更高效的展示,将冻结和降低学利率的两项实验同时概括。
方法一:冻结主干代码如下(在后面将默认打开):

parser.add_argument('--freeze', nargs='+', type=int, default=[10], help='Freeze layers: backbone=10, first3=0 1 2')

方法二:将lr = 0.01,lrf = 0.01,调整为lr = 0.001 ,lrf = 0.2。目的:将学路率调小,避免过程震荡。

yolov5-6.1版本功能测试(全)

最后在看一下呈现效果:(性能持平的就不再强调,提一下各自的优缺点)

yolov5-6.1版本功能测试(全)

在loss曲线可以看出,最优解仍为第二种方法(黄色),最差的为(绿色)冻结主干网络,
总结:冻结网络绿色可以 避免曲线动荡,但是对于大幅度加快网络训练 并没有体现,200epoch只快了0.005h ,效果并不好,从混淆矩阵看,易混淆的类别也会增多,然而冻结网络层也有一定的好处,它可以 降低GPU耗能,节省GPU寿命 。
对于将lr调小以后(橙色),虽然曲线稳定,但是迭代速率变慢,而且最终结果并不比较大的动态学习率效果好。

4.exp4_更改yolo新推出的优化器AdamW(蓝线)

最后我们尝试一下新推出的AdamW优化器的性能如何

python train.py --optim=AdamW

yolov5-6.1版本功能测试(全)
AdamW 相比于 SGD,recall 提升0.1%,precisions 提升 1%,cls_loss 提升10倍。
在results.csv文件看对应指数,最终结果仍然是AdamW能取得最优解。
yolov5-6.1版本功能测试(全)
下面是实际应用效果:
yolov5-6.1版本功能测试(全)

三、总结

以上就是今天要讲的内容,本文仅仅简单介绍了yolov5-6.1版本的性能,以及简单的optimizer,scheduler的性能对比,性能指标仅对此次数据具有参考价值,后续仍需佐证此观点,在此再次陈述一下上文的观点。
一、选择退货余弦学习率迭代,性能将更优,但是时间略有延长,可忽略不计;
二、使用AdamW优化器取代SGD优化器在最终结果时,略优于SGD;
三、在训练全过程使用动态学习率(学习率从大到小),有效的提高迭代速度,同时也能让模型达到最优解;
四、环境允许的情况下,freeze冻结网络并不能在性能持平的情况下加快训练速度。

Original: https://blog.csdn.net/weixin_61785507/article/details/124034967
Author: 商龙人
Title: yolov5-6.1版本功能测试(全)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/680271/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球