首页 > 编程知识 正文

PyTorch学习率 warmup 余弦退火,余弦退火

时间:2023-05-04 16:44:49 阅读:181894 作者:4347

PyTorch学习率warmup余弦退火PyTorch余弦退火PyTorch内置了许多学习率策略,详见torch.optim—py torch1. 10.1 documentation 这里只介绍一般的余弦退火学习率策略。

[导出外链图像失败。 源站可能有防盗链机制。 我们建议您保存并直接上传图片。 (img-noT4RJvn-1641352869753 ) )已解决问题的记录- 2021.assets/image-20220105105717934.png )

主要参数:

优化程序,如SGD和Adam。

T_max :键参数,馀弦退火的最大重复次数,即,学习率下降到最小值的重复次数通常为len (数据加载器) *epochs。

eta_min :退火中的最小学习率。

PyTorch warmup Pytorch内部没有warmup的接口。 为此,必须使用第三方软件包pytorch_warmup。 可以使用命令pip install pytorch_warmup进行安装。

更改包将支持多种学习策略。

[导出外链图像失败。 源站可能有防盗链机制。 我们建议您保存并直接上传图片。 (img-mCGOpscU-1641352869754 ) )记录已解决的问题- 2021.assets/learning _ rate.png ]

您可以使用此软件包和Pytorch中内置的学习率策略完成warmup和余弦退火。

使用样例的公式有两种使用warmup的方法。

学习率策略使用全局迭代次数

importtorchimportpytorch _ warmupaswarmupoptimizer=torch.optim.adamw (params,lr=0.001,Betas=(0.9 ), 0.999 )、 weight _ decay=0.01 (num _ steps=len (data loader ) num _ epochs lr _ scheduler=torch.optim.lr _ scheduler.) rmup(optimizer ) forepochinrange(1,num _ epochs1(: forbatchindataloader : optimizer.zero _ grad ) loss=.

lr _ scheduler.step (lr _ scheduler.last _ epoch1)学习率策略使用epoch的数量(PyTorch=1.2 ) ) ) ) )。

lr _ scheduler=torch.optim.lr _ scheduler.multistep lr (optimizer,milestones=[num_epochs//3], gamma=0.1 ) warmup _ scheduler=warmup.untunedlinearwarmup (optimizer ) warmup_scheduler.last_step=-1# in ITER num _ epochs1(: forbatchindataloader : lr _ scheduler.step (epoch-1 ) warmup_scheduler.dampen ) ) optopttop

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。