Learn Before
Code
Multi-Factor Learning Rate Scheduler Implementation
A multi-factor (or piecewise constant) learning rate scheduler decreases the learning rate by a specific factor at predefined milestone epochs. While modern frameworks offer built-in solutions—such as torch.optim.lr_scheduler.MultiStepLR in PyTorch and lr_scheduler.MultiFactorScheduler in MXNet—this strategy can also be implemented from scratch. The following Python code demonstrates a custom scheduler that multiplies the base learning rate by a given factor whenever the current epoch is found in the predefined set of milestone steps:
class MultiFactorScheduler: def __init__(self, step, factor, base_lr): self.step = step self.factor = factor self.base_lr = base_lr def __call__(self, epoch): if epoch in self.step: self.base_lr = self.base_lr * self.factor return self.base_lr else: return self.base_lr
0
1
Updated 2026-05-18
Tags
D2L
Dive into Deep Learning @ D2L