Планировщик Pytorch: как получить уменьшающиеся эпохи LR

#pytorch #scheduler

Вопрос:

Я тренирую сеть в pytorch и использую ReduceLROnPlateau ее в качестве планировщика. Я задаю параметры verbose=True , и мой планировщик печатает что-то вроде:

Эпоха 159: снижение скорости обучения до 6.0000 e-04.

Эпоха 169: снижение скорости обучения до 3,0000 e-04.

Эпоха 178: снижение скорости обучения до 1.5000 e-04.

Эпоха 187: снижение скорости обучения до 7.5000 e-05.

Я хотел бы каким-то образом получить эпохи, чтобы получить список со всеми эпохами, в которых планировщик снизил скорость обучения. Что-то вроде: lr_decrease_epochs = ['159', '169', '178', '187']

Какой самый простой способ сделать это ?

Ответ №1:

Я думаю, что планировщик не отслеживает это (по крайней мере, я не видел ничего подобного в исходном коде), но вы можете просто отслеживать это в своем цикле обучения.

Всякий раз, когда скорость обучения меняется ( scheduler.get_lr() ), вы просто записываете текущую эпоху.