赞
踩
引言:在网络训练过程中,学习率扮演着重要的角色,类似于爬山过程中你所迈的步长,根据不同的地理环境,相应改变自己的步长跨度,例如挡在比较平缓的山地,你可能迈步相对跨度较大,而在崎岖的山路上,下坡路迈步可能很小。在训练网络的过程中,网络同样需要寻求找到全局最优解,如果步长太大可能在错过了最优解、或者在一个小山谷中来回折腾,当步长太小的话,浪费训练时间(类似于在平原中迈小步)。说了这么多就是希望大家能够更好地理解学习率,以及发挥的作用。(终于说完了,替你捏了把汗)
首先看一下在网络中的学习率调整源码,然后再谈:
代码:
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.正题开始:
首先先看一下学习率可视化的图像吧:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。