当前位置: 代码迷 >> 综合 >> pytorch Cosine Annealing LR
  详细解决方案

pytorch Cosine Annealing LR

热度:51   发布时间:2023-12-18 16:25:42.0

Cosine Annealing LR

torch.optim.lr_scheduler.CosineAnnealingLR(optimizer,T_max,eta_min=0,last_epoch=-1)

这个学习率策略就是说,学习率以余弦函数的趋势进行变换。

  • T_max

    用于设置半个周期的长度。如T_max=50的话,则学习率的变化情况为:在epoch0的时候,学习率是设置最大值;epoch0 ~ epoch50时,以余弦型式由设置的最大值下降到设置的最小值;epoch50 ~ epoch100,又由设置的最小值逐渐上升到设置的最大值。
    在这里插入图片描述

  • eta_min:学习率可以下降到的最小值。

  • last_epoch:前一轮是epoch几,用于确定当前轮的学习率。-1的话,表示当epoch是0。

ps:学习率的最大值是在optimizer中设置的那个值。

eg:下面的代码表示学习率在[0, 0.01]内以 半周期为50的余弦函数形式 进行变化。

optimizer = optim.Adam(net.parameters(), lr=0.01)
lr_scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=50, eta_min=0)