Код Middle Оптимизаторы и обучение обновлено

Расписание warmup + cosine

Условие

Напишите lr_at(step, max_lr, warmup, total, min_lr): при step < warmup lr растёт линейно: max_lr·(step + 1)/warmup; дальше косинус от max_lr до min_lr: min_lr + 0.5·(max_lr - min_lr)·(1 + cos(π·p)), где p = (step - warmup) / (total - warmup), p не больше 1. Округлите до 8 знаков.

Примеры

lr_at(0, 0.001, 10, 110, 0) // 0.0001
lr_at(9, 0.001, 10, 110, 0) // 0.001
lr_at(10, 0.001, 10, 110, 0) // 0.001

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме