# tf.keras.callbacks.ReduceLROnPlateau

## Class ReduceLROnPlateau

Inherits From: Callback

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 * factor
• patience: 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}. In min mode, lr will be reduced when the quantity monitored has stopped decreasing; in max mode it will be reduced when the quantity monitored has stopped increasing; in auto mode, the direction is automatically inferred from the name of the monitored quantity.
• epsilon: 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.

## Methods

### __init__

__init__(
monitor='val_loss',
factor=0.1,
patience=10,
verbose=0,
mode='auto',
epsilon=0.0001,
cooldown=0,
min_lr=0
)


### in_cooldown

in_cooldown()


### on_batch_begin

on_batch_begin(
batch,
logs=None
)


### on_batch_end

on_batch_end(
batch,
logs=None
)


### on_epoch_begin

on_epoch_begin(
epoch,
logs=None
)


### on_epoch_end

on_epoch_end(
epoch,
logs=None
)


### on_train_begin

on_train_begin(logs=None)


### on_train_end

on_train_end(logs=None)


### set_model

set_model(model)


### set_params

set_params(params)