参考:PyTorch余弦学习率衰减
    PyTorch学习之六个学习率调整策略

    1. 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对应的学习率。

    实例:

    1. # optimizer学习率初值为0.0005,100个epoch,从第1个epoch(索引为0)开始训练
    2. scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=10, eta_min=5e-6)