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)