分类选择: 产品分类一 产品分类二 产品分类三 产品分类四 产品分类五
Pytorch使用ReduceLROnPlateau来更新学习率
作者:佚名    所属栏目:【产品分类三】    时间:2024-03-04

自己之前写过一个Pytorch学习率更新,其中感觉依据是否loss升高或降低的次数来动态更新学习率,感觉是个挺好玩的东西,自己弄了好久都设置错误,今天算是搞出来了!

在发现loss不再降低或者acc不再提高之后,降低学习率。各参数意义如下:

参数含义
mode'min’模式检测metric是否不再减小,'max’模式检测metric是否不再增大;
factor触发条件后lr*=factor;
patience不再减小(或增大)的累计次数;
verbose触发条件后print;
threshold只关注超过阈值的显著变化;
threshold_mode有rel和abs两种阈值计算模式,rel规则:max模式下如果超过best(1+threshold)为显著,min模式下如果低于best(1-threshold)为显著;abs规则:max模式下如果超过best+threshold为显著,min模式下如果低于best-threshold为显著;
cooldown触发一次条件后,等待一定epoch再进行检测,避免lr下降过速;
min_lr最小的允许lr;
eps如果新旧lr之间的差异小与1e-8,则忽略此次更新。
 
 

我感觉这里面最难的时这几个参数的选择,第一个是初始的学习率(我目前接触的miniest和下面的图像分类貌似都是0.001,我这里训练调整时才发现自己设置的为0.0009575,这个值是上一个实验忘更改了,但发现结果不错,第一次运行该代码接近到0.001这么小的损失值),这里面的乘积系数以及判断说多少次没有减少(增加)后决定变换学习率都是难以估计的。我自己的最好方法是先按默认不变的0.001来训练一下(结合**tensoarboard** )观察从哪里开始出现问题就可以从这里来确定次数,而乘积系数,个人感觉还是用上面的代码来获取一个较为平滑且变化极小的数字来作为选择。建议在做这种测试时可以把模型先备份一下以免浪费过多的时间!

  
网站首页 关于我们 耀世动态 耀世注册 耀世登录 联系我们

电话:400-123-4567      手机:13800000000
E-mail:admin@youweb.com      联系人:张生
地址:广东省广州市天河区88号

Copyright © 2012-2018 耀世娱乐-耀世注册登录官方入口 版权所有      琼ICP备xxxxxxxx号

扫一扫  关注微信

平台注册入口