CosineAnnealingWarmRestarts
-
class torch.optim.lr_scheduler.CosineAnnealingWarmRestarts(optimizer, T_0, T_mult=1, eta_min=0, last_epoch=- 1, verbose=False)[source] -
Устанавливает скорость обучения каждого параметра группы с помощью графика отжига косинуса, где устанавливается в начальное значение lr, — количество эпох с момента последнего перезапуска, а — количество эпох между двумя теплыми перезапусками в SGDR:
Когда , установите . Когда после перезапуска, установите .
Предложено в SGDR: Stochastic Gradient Descent with Warm Restarts.
- Параметры:
-
- optimizer (Optimizer) – Оборачиваемый оптимизатор.
- T_0 (int) – Количество итераций для первого перезапуска.
- T_mult (int, необязательно) – Множитель увеличивает после перезапуска. По умолчанию: 1.
- 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__, которая не является оптимизатором.
-
step(epoch=None)[source] -
Шаг может быть вызван после каждого обновления пакетных данных
Пример
>>> scheduler = CosineAnnealingWarmRestarts(optimizer, T_0, T_mult) >>> iters = len(dataloader) >>> for epoch in range(20): >>> for i, sample in enumerate(dataloader): >>> inputs, labels = sample['inputs'], sample['labels'] >>> optimizer.zero_grad() >>> outputs = net(inputs) >>> loss = criterion(outputs, labels) >>> loss.backward() >>> optimizer.step() >>> scheduler.step(epoch + i / iters)
Эта функция может вызываться перекрестно.
Пример
>>> scheduler = CosineAnnealingWarmRestarts(optimizer, T_0, T_mult) >>> for epoch in range(20): >>> scheduler.step() >>> scheduler.step(26) >>> scheduler.step() # scheduler.step(27), instead of scheduler(20)
© 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.CosineAnnealingWarmRestarts.html