linear_with_warmup
allennlp.training.learning_rate_schedulers.linear_with_warmup
LinearWithWarmup¶
@LearningRateScheduler.register("linear_with_warmup")
class LinearWithWarmup(PolynomialDecay):
| def __init__(
| self,
| optimizer: torch.optim.Optimizer,
| num_epochs: int,
| num_steps_per_epoch: int,
| warmup_steps: int = 100,
| last_epoch: int = -1
| ) -> None
Implements a learning rate scheduler that increases the learning rate to
lr
during the first warmup_steps
steps, and then decreases it to zero
over the rest of the training steps.
In practice, this is a wrapper of PolynomialDecay
with power=1
and end_learning_rate=0
.
Parameters¶
- optimizer :
torch.optim.Optimizer
This argument does not get an entry in a configuration file for the object. - num_epochs :
int
The number of epochs in the experiment. this does NOT get an entry in the config. - num_steps_per_epoch :
int
The number of steps per epoch. this does NOT get an entry in the config. - warmup_steps :
int
The number of steps to linearly increase the learning rate.
Example¶
Config for using the LinearWithWarmup
Learning Rate Scheduler with
warmup_steps
set 100
.
{
...
"trainer":{
...
"learning_rate_scheduler": {
"type": "linear_with_warmup",
"warmup_steps":100
},
...
}
}
optimizer
, num_epochs
, nor
num_steps_per_epoch
key to the Learning rate scheduler.