Learning Rate Schedulers¶
zij.core.lr_scheduler vendors the PyTorch core learning rate schedulers under their original class names. The first table lists every vendored class, including the LRScheduler base class, with the published work it derives from where one exists. The second table covers notable schedules from the literature that zij does not yet implement.
In zij¶
| Scheduler | Origin |
|---|---|
ChainedScheduler |
— |
ConstantLR |
— |
CosineAnnealingLR |
Loshchilov & Hutter ICLR 2017 (SGDR) |
CosineAnnealingWarmRestarts |
Loshchilov & Hutter ICLR 2017 (SGDR) |
CyclicLR |
Smith WACV 2017 (cyclical learning rates) |
ExponentialLR |
— |
LambdaLR |
— |
LinearLR |
— |
LRScheduler |
— |
MultiplicativeLR |
— |
MultiStepLR |
— |
OneCycleLR |
Smith & Topin 2019 (super-convergence) |
PolynomialLR |
— |
ReduceLROnPlateau |
— |
SequentialLR |
— |
StepLR |
— |
Notable schedules elsewhere¶
Schedule-Free is not a schedule on top of an optimizer but a replacement for scheduling, achieved through online iterate averaging inside the optimizer; see the learning-rate-free optimizers.
Weight averaging is available separately in zij.core.swa_utils, which provides stochastic weight averaging and exponential moving average utilities (AveragedModel, SWALR, update_bn, and the SWA/EMA averaging functions), following Averaging Weights Leads to Wider Optima and Better Generalization (Izmailov et al., UAI 2018).