CosineAnnealingLR
-
class torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0.0, last_epoch=-1)[source] -
Set the learning rate of each parameter group using a cosine annealing schedule.
The learning rate is updated recursively using:
This implements a recursive approximation of the closed-form schedule proposed in SGDR: Stochastic Gradient Descent with Warm Restarts:
where:
- is the learning rate at step
- is the number of epochs since the last restart
- is the maximum number of epochs in a cycle
Note
Although SGDR includes periodic restarts, this implementation performs cosine annealing without restarts, so and increases monotonically with each call to
step().- Parameters
Example
>>> num_epochs = 100 >>> scheduler = CosineAnnealingLR(optimizer, T_max=num_epochs) >>> for epoch in range(num_epochs): >>> train(...) >>> validate(...) >>> scheduler.step()
-
get_last_lr()[source] -
Return last computed learning rate by current scheduler.
-
load_state_dict(state_dict)[source] -
Load the scheduler’s state.
- Parameters
-
state_dict (dict) – scheduler state. Should be an object returned from a call to
state_dict().
-
state_dict()[source] -
Return the state of the scheduler as a
dict.It contains an entry for every variable in self.__dict__ which is not the optimizer.
-
step(epoch=None)[source] -
Perform a step.