标签:10 CosineAnnealingLR max PyTorch 余弦 学习 epoch scheduler 衰减
前言
今天用到了PyTorch里的CosineAnnealingLR,也就是用余弦函数进行学习率的衰减。
下面讲讲定义CosineAnnealingLR这个类的对象时输入的几个参数是什么,代码示例就不放了。
正文
torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0, last_epoch=-1)
-
optimizer
需要进行学习率衰减的优化器变量
-
T_max
Cosine是个周期函数嘛,这里的
T_max
就是这个周期的一半如果你将
T_max
设置为10,则学习率衰减的周期是20个epoch,其中前10个epoch从学习率的初值(也是最大值)下降到最低值,后10个epoch从学习率的最低值上升到最大值 -
eta_min
学习率衰减时的最小值,默认值为0
-
last_epoch
(上次训练)最后一个epoch的索引值,默认值为-1。
我没有测试,猜测是:如果你将其设置为20,那定义出来的scheduler的第一次step就会到第21个epoch对应的学习率。
效果
我的参数是:
# optimizer学习率初值为0.0005,100个epoch,从第1个epoch(索引为0)开始训练
scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=10, eta_min=5e-6)
效果图如下:
参考链接
作者:@臭咸鱼
转载请注明出处:https://www.cnblogs.com/chouxianyu/
欢迎讨论和交流!
标签:10,CosineAnnealingLR,max,PyTorch,余弦,学习,epoch,scheduler,衰减 来源: https://www.cnblogs.com/chouxianyu/p/12573673.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。