РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pytoSpTrSl 44 of 82 menu
◀ ▶

Снижение скорости по эпохам в PyTorch

Скорость обучения можно менять по расписанию. Класс StepLR через несколько эпох умножает скорость у связанного оптимизатора на заданный множитель меньше единицы.

Создадим спуск и расписание, выведем скорость, выполним три эпохи с шагом оптимизатора и снова прочитаем скорость:

import torch import torch.nn as nn model = nn.Linear(2, 1) optimizer = torch.optim.SGD( model.parameters(), lr=0.1, ) scheduler = torch.optim.lr_scheduler.StepLR( optimizer, step_size=3, gamma=0.5, ) print(scheduler.get_last_lr()[0]) # выведет 0.1 for _ in range(3): x = torch.randn(1, 2) optimizer.zero_grad() model(x).sum().backward() optimizer.step() scheduler.step() print(scheduler.get_last_lr()[0]) # выведет 0.05

Подключите к спуску со скоростью 0.2 расписание, которое каждые 2 эпохи умножает скорость на 0.25. После четырёх вызовов шага у расписания выведите текущую скорость.

Создайте линейный слой и оптимизатор со скоростью 0.01. Свяжите его с правилом: через 5 эпох скорость делится пополам. Выведите скорость до первого шага расписания и после пяти таких шагов.

Возьмите скорость 1.0 и расписание с интервалом 1 эпоха и множителем 0.9. Сделайте три шага расписания после шагов оптимизатора и выведите итоговую скорость с точностью до трёх знаков после запятой.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить