-
【方法一:
ReduceLROnPlateau
】当设定指标在最近几个epoch中都没有变化时,调整学习率。optimizer = torch.optim.SGD(net.parameters(), lr=learning_rate, weight_decay=0.01) scheduler = torch.optim.lr_sheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=10) scheduler.step(设定指标) ## 判断一次是否更新
主要参数:
- mode:min 或 max
- min:表示当指标
patience
个 epoch 都不再降低 ,max:都不再升高
- min:表示当指标
- patience: 忍受多少个 epoch 不变化,再调整 learning rate
- factor: 学习率调整倍数,需要调整时,lr *= factor
- mode:min 或 max
-
【方法二:
StepLR
】每 n=step_size 轮,调整学习率scheduler = torch.optim.lr_sheduler.StepLR(optimizer, step_size=30, gamma=0.1)
主要参数:
- step_size: 等待多少 epoch,再调整 learning rate
- gamma: 学习率调整倍数,需要调整时,lr *= gamma
- B站视频参考资料