Spec-Zone.ru › PyTorch 2.14

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) [исходный код]

Уменьшает скорость обучения, когда метрика перестаёт улучшаться.

Модели часто выигрывают от уменьшения скорости обучения в 2–10 раз, когда обучение замедляется. Этот планировщик отслеживает значение метрики и уменьшает скорость обучения, если улучшение не наблюдается в течение заданного числа эпох «patience».

Параметры:
  • optimizer (Optimizer) – Оптимизатор, для которого применяется планировщик.
  • mode (str) – Один из min, max. В режиме min скорость обучения будет уменьшена, если отслеживаемое значение перестанет снижаться; в режиме max она будет уменьшена, если отслеживаемое значение перестанет расти. По умолчанию: ‘min’.
  • factor (float) – Коэффициент, на который будет уменьшена скорость обучения. new_lr = lr * factor. По умолчанию: 0.1.
  • patience (int) – Число эпох без улучшения, после которого скорость обучения будет уменьшена. Например, рассмотрим случай, когда терпение равно нулю (patience = 0). В первую эпоху устанавливается базовое значение, которое всегда считается хорошим, поскольку предыдущего базового значения нет. Во вторую эпоху, если результат хуже базового значения, эпоха считается недопустимой. Поскольку число недопустимых эпох (1) превышает уровень терпения (0), скорость обучения уменьшается в конце этой эпохи. Начиная с третьей эпохи скорость обучения продолжает уменьшаться в конце каждой эпохи, если результат хуже базового значения. Если результат улучшается или остаётся прежним, скорость обучения не корректируется. По умолчанию: 10.
  • threshold (float) – Порог для определения нового оптимального значения, позволяющий учитывать только существенные изменения. По умолчанию: 1e-4.
  • threshold_mode (str) –

    Один из rel, abs. В режиме rel динамический порог вычисляется следующим образом:

    • best * (1 + threshold), если mode == ‘max’
    • best * (1 - threshold), если mode == ‘min’

    В режиме abs динамический порог вычисляется следующим образом:

    • best + threshold, если mode == ‘max’
    • best - threshold, если mode == ‘min’

    По умолчанию: ‘rel’.

  • cooldown (int) – Число эпох ожидания перед возобновлением обычной работы после уменьшения скорости обучения. По умолчанию: 0.
  • min_lr (float или list) – Скалярное значение или список скалярных значений. Нижняя граница скорости обучения для всех групп параметров или для каждой группы соответственно. По умолчанию: 0.
  • eps (float) – Минимальное уменьшение скорости обучения. Если разница между новой и старой скоростью обучения меньше eps, обновление игнорируется. По умолчанию: 1e-8.

Пример

>>> 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)
../_images/ReduceLROnPlateau.png
get_last_lr() [исходный код]

Возвращает последние скорости обучения, вычисленные этим планировщиком.

Возвращает:

list скоростей обучения с записями для каждой из param_groups оптимизатора; типы записей совпадают с типами их group["lr"].

Тип возвращаемого значения:

list[float | Tensor]

Примечание

Возвращаемые Tensor являются копиями и никогда не являются псевдонимами group["lr"] оптимизатора.

get_lr() [исходный код]

Вычисляет следующую скорость обучения для каждой из param_groups оптимизатора.

Возвращает:

list скоростей обучения для каждой из param_groups оптимизатора; типы записей совпадают с типами их текущих group["lr"].

Тип возвращаемого значения:

list[float | Tensor]

Примечание

Чтобы узнать последнюю скорость обучения, используйте вместо этого get_last_lr().

Примечание

Возвращаемые Tensor являются копиями и никогда не являются псевдонимами group["lr"] оптимизатора.

load_state_dict(state_dict) [исходный код]

Загружает состояние планировщика.

state_dict() [исходный код]

Возвращает состояние планировщика в виде dict.

Оно содержит запись для каждой переменной из self.__dict__, кроме оптимизатора.

Тип возвращаемого значения:

dict[str, Any]

step(metrics, epoch=None) [исходный код]

Выполняет шаг.

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.optim.lr_scheduler.ReduceLROnPlateau.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API