LRScheduler¶
- class paddle.callbacks. LRScheduler ( by_step=True, by_epoch=False ) [source]
- 
         Lr scheduler callback function - Parameters
- 
           - by_step (bool, optional) – whether to update learning rate scheduler by step. Default: True. 
- by_epoch (bool, optional) – whether to update learning rate scheduler by epoch. Default: False. 
 
 Examples import paddle import paddle.vision.transforms as T from paddle.static import InputSpec inputs = [InputSpec([-1, 1, 28, 28], 'float32', 'image')] labels = [InputSpec([None, 1], 'int64', 'label')] transform = T.Compose([ T.Transpose(), T.Normalize([127.5], [127.5]) ]) train_dataset = paddle.vision.datasets.MNIST(mode='train', transform=transform) lenet = paddle.vision.models.LeNet() model = paddle.Model(lenet, inputs, labels) base_lr = 1e-3 boundaries = [5, 8] wamup_steps = 4 def make_optimizer(parameters=None): momentum = 0.9 weight_decay = 5e-4 values = [base_lr * (0.1**i) for i in range(len(boundaries) + 1)] learning_rate = paddle.optimizer.lr.PiecewiseDecay( boundaries=boundaries, values=values) learning_rate = paddle.optimizer.lr.LinearWarmup( learning_rate=learning_rate, warmup_steps=wamup_steps, start_lr=base_lr / 5., end_lr=base_lr, verbose=True) optimizer = paddle.optimizer.Momentum( learning_rate=learning_rate, weight_decay=weight_decay, momentum=momentum, parameters=parameters) return optimizer optim = make_optimizer(parameters=lenet.parameters()) model.prepare(optimizer=optim, loss=paddle.nn.CrossEntropyLoss(), metrics=paddle.metric.Accuracy()) # if LRScheduler callback not set, an instance LRScheduler update by step # will be created auto. model.fit(train_dataset, batch_size=64) # create a learning rate scheduler update by epoch callback = paddle.callbacks.LRScheduler(by_step=False, by_epoch=True) model.fit(train_dataset, batch_size=64, callbacks=callback) - 
            
           on_epoch_end
           (
           epoch, 
           logs=None
           )
           on_epoch_end¶
- 
           Called at the end of each epoch. - Parameters
- 
             - epoch (int) – The index of epoch. 
- logs (dict) – The logs is a dict or None. The logs passed by paddle.Model is a dict, contains ‘loss’, metrics and ‘batch_size’ of last batch. 
 
 
 - 
            
           on_train_batch_end
           (
           step, 
           logs=None
           )
           on_train_batch_end¶
- 
           Called at the end of each batch in training. - Parameters
- 
             - step (int) – The index of step (or iteration). 
- logs (dict) – The logs is a dict or None. The logs passed by paddle.Model is a dict, contains ‘loss’, metrics and ‘batch_size’ of current batch. 
 
 
 
