Class ReduceLROnPlateau
Inherits From: Callback
Defined in tensorflow/python/keras/callbacks.py
.
Reduce learning rate when a metric has stopped improving.
Models often benefit from reducing the learning rate by a factor of 2-10 once learning stagnates. This callback monitors a quantity and if no improvement is seen for a 'patience' number of epochs, the learning rate is reduced.
Example:
reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.2,
patience=5, min_lr=0.001)
model.fit(X_train, Y_train, callbacks=[reduce_lr])
Arguments:
monitor
: quantity to be monitored.factor
: factor by which the learning rate will be reduced. new_lr = lr * factorpatience
: number of epochs with no improvement after which learning rate will be reduced.verbose
: int. 0: quiet, 1: update messages.mode
: one of {auto, min, max}. Inmin
mode, lr will be reduced when the quantity monitored has stopped decreasing; inmax
mode it will be reduced when the quantity monitored has stopped increasing; inauto
mode, the direction is automatically inferred from the name of the monitored quantity.min_delta
: threshold for measuring the new optimum, to only focus on significant changes.cooldown
: number of epochs to wait before resuming normal operation after lr has been reduced.min_lr
: lower bound on the learning rate.
__init__
__init__(
monitor='val_loss',
factor=0.1,
patience=10,
verbose=0,
mode='auto',
min_delta=0.0001,
cooldown=0,
min_lr=0,
**kwargs
)
Initialize self. See help(type(self)) for accurate signature.
Methods
tf.keras.callbacks.ReduceLROnPlateau.in_cooldown
in_cooldown()
tf.keras.callbacks.ReduceLROnPlateau.on_batch_begin
on_batch_begin(
batch,
logs=None
)
tf.keras.callbacks.ReduceLROnPlateau.on_batch_end
on_batch_end(
batch,
logs=None
)
tf.keras.callbacks.ReduceLROnPlateau.on_epoch_begin
on_epoch_begin(
epoch,
logs=None
)
tf.keras.callbacks.ReduceLROnPlateau.on_epoch_end
on_epoch_end(
epoch,
logs=None
)
tf.keras.callbacks.ReduceLROnPlateau.on_train_batch_begin
on_train_batch_begin(
batch,
logs=None
)
tf.keras.callbacks.ReduceLROnPlateau.on_train_batch_end
on_train_batch_end(
batch,
logs=None
)
tf.keras.callbacks.ReduceLROnPlateau.on_train_begin
on_train_begin(logs=None)
tf.keras.callbacks.ReduceLROnPlateau.on_train_end
on_train_end(logs=None)
tf.keras.callbacks.ReduceLROnPlateau.set_model
set_model(model)
tf.keras.callbacks.ReduceLROnPlateau.set_params
set_params(params)