ReduceLROnPlateau
-
class torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=10, threshold=0.0001, threshold_mode='rel', cooldown=0, min_lr=0, eps=1e-08, verbose=False)[source] -
Уменьшение скорости обучения, когда метрика перестала улучшаться. Модели часто выигрывают от уменьшения скорости обучения в 2-10 раз, когда обучение замирает. Этот планировщик считывает значение метрики и, если улучшения не наблюдаются в течение «терпения» эпох, скорость обучения уменьшается.
- Параметры:
-
- optimizer (Оптимизатор) – Обернутый оптимизатор.
-
mode (str) – Один из
min,max. В режимеminскорость обучения будет уменьшаться, когда отслеживаемое значение перестанет убывать; в режимеmaxона будет уменьшаться, когда отслеживаемое значение перестанет возрастать. По умолчанию: ‘min’. - factor (float) – Коэффициент, на который будет уменьшаться скорость обучения. new_lr = lr * factor. По умолчанию: 0.1.
-
patience (int) – Количество эпох без улучшений, после чего скорость обучения будет уменьшена. Например, если
patience = 2, то мы пропустим первые 2 эпохи без улучшений и будем уменьшать скорость обучения только после 3-й эпохи, если потеря всё ещё не улучшилась. По умолчанию: 10. - threshold (float) – Порог для измерения нового оптимума, чтобы сосредоточиться только на значительных изменениях. По умолчанию: 1e-4.
-
threshold_mode (str) – Один из
rel,abs. В режимеreldynamic_threshold = best * ( 1 + threshold ) в режиме ‘max’ или best * ( 1 - threshold ) в режимеmin. В режимеabsdynamic_threshold = best + threshold в режимеmaxили best - threshold в режимеmin. По умолчанию: ‘rel’. - cooldown (int) – Количество эпох ожидания перед возобновлением нормальной работы после уменьшения скорости обучения. По умолчанию: 0.
- min_lr (float или list) – Скаляр или список скаляров. Нижняя граница скорости обучения всех групп параметров или каждой группы соответственно. По умолчанию: 0.
- eps (float) – Минимальная величина уменьшения скорости обучения. Если разница между новой и старой скоростью обучения меньше eps, обновление игнорируется. По умолчанию: 1e-8.
-
verbose (bool) – Если
True, выводит сообщение в стандартный вывод для каждого обновления. По умолчанию:False.
Пример
>>> optimizer = torch.optim.SGD(model.parameters(), lr=0.1, momentum=0.9) >>> scheduler = ReduceLROnPlateau(optimizer, 'min') >>> for epoch in range(10): >>> train(...) >>> val_loss = validate(...) >>> # Note that step should be called after validate() >>> scheduler.step(val_loss)
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.optim.lr_scheduler.ReduceLROnPlateau.html