六种学习率调整策略:
1、等间隔调整学习率StepLR,调整倍数为gamma倍,调整间隔为step_size。step通常指的是epoch。
lr = lr * gamma
torch.optim.lr_scheduler.StepLR(optimizer, step_size, gamma=0.1, last_epoch=-1)
2、按需调整学习率multiStepLR,与StepLR的区别是,调节的epoch是自己定义,衰减是由外部的设置来更改的。如[5,20,25,80]处对学习率进行衰减,
3、指数衰减调整学习率ExponentialLR
torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma, last_epoch=-1)
4、余弦退火调整学习率 CosineAnnealingLR
以初始学习率为最大学习率,在一个周期内先下降后上升。
torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0, last_epoch=-1)
5、自适用调整学习率ReduceLROnPlateau
当某些指标不在变化(下降或者升高),调整学习率,这是非常实用的学习率调整策略。
torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=10, verbose=False, threshold=0.0001, threshold_mode='rel'