栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

YOLO网络中的学习率调整可视化

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

YOLO网络中的学习率调整可视化

引言:在网络训练过程中,学习率扮演着重要的角色,类似于爬山过程中你所迈的步长,根据不同的地理环境,相应改变自己的步长跨度,例如挡在比较平缓的山地,你可能迈步相对跨度较大,而在崎岖的山路上,下坡路迈步可能很小。在训练网络的过程中,网络同样需要寻求找到全局最优解,如果步长太大可能在错过了最优解、或者在一个小山谷中来回折腾,当步长太小的话,浪费训练时间(类似于在平原中迈小步)。说了这么多就是希望大家能够更好地理解学习率,以及发挥的作用。(终于说完了,替你捏了把汗)

        首先看一下在网络中的学习率调整源码,然后再谈:

代码:

 lf = lambda x: ((1 + math.cos(x * math.pi / epochs)) / 2) * (1 - hyp['lrf']) + hyp['lrf']  # cosine
    scheduler = lr_scheduler.LambdaLR(optimizer, lr_lambda=lf)

        是不是感觉之前被我吓到了,一看代码,这么少,不会吧!!!  在此之前小琼一直搞不懂,那个、这个啥玩意?直到做了个梦,突然有了灵感。(算了不多说了)

1.正题开始:

        首先先看一下学习率可视化的图像吧:

学习率参数调整图

分析:

        (和这篇文章分析的结果一样)学习率的值不断地在减少,这是因为在最开始训练网络时,步长较大,相当于还在山坡的半山腰上,随着逐步走向山谷,步长逐渐减少,避免错过山谷的最低端(认为是梯度为0的地方,是网络的全局或者局部最优解),因此在训练网络结束时,步长一般很小,或者等于初始化时你设定的值。(如果不太懂请移步这里)。

代码实现:

import math
import numpy as np
import matplotlib.pyplot as plt


lr0: 0.01  # initial learning rate (SGD=1E-2, Adam=1E-3)
lrf: 0.2  # final oneCycleLR learning rate (lr0 * lrf)
epochs=100
lf = lambda x: ((1 + math.cos(x * math.pi / epochs)) / 2) * (1 - 0.2) + 0.2  # cosine

list_lf=[]
for i in range(epochs):
    value=lf(i)
    list_lf.append(value)

x=np.linspace(0,102,100)
plt.title('yolov5-s leaning rate line show ')
plt.figure(1,figsize=(8,6))
plt.plot(x,list_lf,color='blue',lw=2,linestyle='--')
plt.show()

解析:

1》代码1:

lr0: 0.01  # initial learning rate (SGD=1E-2, Adam=1E-3)
lrf: 0.2  # final oneCycleLR learning rate (lr0 * lrf)

        关于这个是源码中设置的超参数,(好像是硬性规定,可能是源码作者在多次不同尝试下得到的最好的调整学习率超参数)

 2》在上述代码中,小琼设置的网络迭代次数为100次,这个参数你可以随意设置,一般在100-300之间,如果数据量较大,数据量较小时一般在1000-5000次左右,小琼总结就是一般基于迁移学习的网络训练最低训练时间是10个小时,你可以根据自己训练一次数据的时间,计算。

2.结束:

GAME OVER    

      相遇总是美好的开始,感谢小伙伴梦能够看完、坚持到最后 并且能够理解小琼的思路,以及想要表达的话语。

如果感觉不错的话,点个小赞呗!!!

欢迎和小伙伴梦一起探讨学习,共同进步,努力加油!!!

爱你们每一天!!!

附上女神图:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/293853.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号