Spec-Zone.ru › PyTorch 2

CosineAnnealingLR

class torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0, last_epoch=-1, verbose=False) [source]

Установите скорость обучения каждого параметра группы, используя график косинусного отжига, где ηmax\eta_{max} устанавливается в начальное значение lr, а TcurT_{cur} — количество эпох с момента последнего перезапуска в SGDR:

ηt=ηmin+12(ηmax−ηmin)(1+cos⁡(TcurTmaxπ)),Tcur≠(2k+1)Tmax;ηt+1=ηt+12(ηmax−ηmin)(1−cos⁡(1Tmaxπ)),Tcur=(2k+1)Tmax.\begin{aligned} \eta_t & = \eta_{min} + \frac{1}{2}(\eta_{max} - \eta_{min})\left(1 + \cos\left(\frac{T_{cur}}{T_{max}}\pi\right)\right), & T_{cur} \neq (2k+1)T_{max}; \\ \eta_{t+1} & = \eta_{t} + \frac{1}{2}(\eta_{max} - \eta_{min}) \left(1 - \cos\left(\frac{1}{T_{max}}\pi\right)\right), & T_{cur} = (2k+1)T_{max}. \end{aligned}

Когда last_epoch=-1, устанавливает начальное значение lr как lr. Обратите внимание, что из-за того, что график определен рекурсивно, скорость обучения может быть одновременно изменена вне этого планировщика другими операторами. Если скорость обучения устанавливается только этим планировщиком, скорость обучения на каждом шаге становится:

ηt=ηmin+12(ηmax−ηmin)(1+cos⁡(TcurTmaxπ))\eta_t = \eta_{min} + \frac{1}{2}(\eta_{max} - \eta_{min})\left(1 + \cos\left(\frac{T_{cur}}{T_{max}}\pi\right)\right)

Это было предложено в SGDR: Stochastic Gradient Descent with Warm Restarts. Обратите внимание, что этот планировщик реализует только часть косинусного отжига SGDR, а не перезапуски.

Параметры
  • optimizer (Оптимизатор) — Обёртка оптимизатора.
  • T_max (int) — Максимальное количество итераций.
  • eta_min (float) — Минимальная скорость обучения. По умолчанию: 0.
  • last_epoch (int) — Индекс последней эпохи. По умолчанию: -1.
  • verbose (bool) — Если True, выводит сообщение в стандартный вывод для каждого обновления. По умолчанию: False.
get_last_lr()

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

load_state_dict(state_dict)

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

Параметры

state_dict (dict) — Состояние планировщика. Должно быть объектом, возвращенным из вызова state_dict().

print_lr(is_verbose, group, lr, epoch=None)

Отображает текущую скорость обучения.

state_dict()

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

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

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

Spec-Zone.ru

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