PyTorch余弦学习率

 

前言

今天用到了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://pytorch.org/docs/stable/optim.html?highlight=cosine#torch.optim.lr_scheduler.CosineAnnealingLR

分类: 训练优化
标签: 余弦学习率
0
0
 
« 上一篇: yolov5的quad dataloader参数
» 下一篇: YOLOv5中Pytorch训练步骤代码
posted @   臭咸鱼  阅读(267)  评论(0编辑  收藏  举报
posted @   海_纳百川  阅读(267)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
本站总访问量8979592
 
点击右上角即可分享
微信分享提示