Skip to content

Scheduler

Scheduler is the abstract base class for learning rate schedules in simplegrad. Concrete subclasses (e.g. LinearLR, CosineAnnealingLR) implement step() to adjust the learning rate of an attached optimizer after each epoch or iteration. Calling scheduler.step() once per epoch is the typical usage pattern.

import simplegrad as sg
import simplegrad.nn as nn
import simplegrad.optimizers as optim
import simplegrad.schedulers as schedulers

model = nn.Linear(8, 4)
opt = optim.SGD(lr=0.1, model=model)
scheduler = schedulers.LinearLR(opt, start_factor=1.0, end_factor=0.01, total_iters=10)

for epoch in range(10):
    # ... training loop ...
    scheduler.step()

Scheduler

Base class for all learning rate schedulers.

Subclasses must implement step() to define the schedule update rule.

Attributes

Attribute Type Description
.optimizer Optimizer The optimizer whose learning rate this scheduler controls.
.steps int Number of scheduler steps taken so far.

Methods

Method Description
.step() Advance the scheduler by one step. Implemented by subclasses.