Код 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
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.