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

Contributors are:

Who are from:

Tags

D2L

Dive into Deep Learning @ D2L