Pytorch Scheduler:如何减少 LR epochs

Pytorch Scheduler: how to get decreasing LR epochs

我正在 pytorch 中训练网络并使用 ReduceLROnPlateau 作为调度程序。 我在参数中设置了 verbose=True,我的调度程序打印出如下内容:

Epoch 159: reducing learning rate to 6.0000e-04.

Epoch 169: reducing learning rate to 3.0000e-04.

Epoch 178: reducing learning rate to 1.5000e-04.

Epoch 187: reducing learning rate to 7.5000e-05.

我想以某种方式获取纪元,以便获得包含调度程序降低学习率的所有纪元的列表。 类似于:lr_decrease_epochs = ['159', '169', '178', '187']

哪种方法最简单?

我认为调度器不会跟踪这个(至少我在 source code 中没有看到类似的东西),但你可以在你的训练循环中跟踪这个。

每当学习率发生变化时 (scheduler.get_lr()),您只需记录当前时期。