# tf.keras.callbacks.ReduceLROnPlateau

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/keras-team/keras/tree/v2.13.1/keras/callbacks.py#L2995-L3132) |

Reduce learning rate when a metric has stopped improving.

Inherits From: [`Callback`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/keras/callbacks/Callback)

#### View aliases


**Compat aliases for migration**

See
[Migration guide](https://www.tensorflow.org/guide/migrate) for
more details.

\`tf.compat.v1.keras.callbacks.ReduceLROnPlateau\`

<br />

    tf.keras.callbacks.ReduceLROnPlateau(
        monitor='val_loss',
        factor=0.1,
        patience=10,
        verbose=0,
        mode='auto',
        min_delta=0.0001,
        cooldown=0,
        min_lr=0,
        **kwargs
    )

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])

<br />

<br />

<br />

| ## Args ||
|---|---|
| `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, the learning rate 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. |
| `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. |

<br />

## Methods

### `in_cooldown`

[View source](https://github.com/keras-team/keras/tree/v2.13.1/keras/callbacks.py#L3131-L3132)

    in_cooldown()

### `set_model`

[View source](https://github.com/keras-team/keras/tree/v2.13.1/keras/callbacks.py#L694-L695)

    set_model(
        model
    )

### `set_params`

[View source](https://github.com/keras-team/keras/tree/v2.13.1/keras/callbacks.py#L691-L692)

    set_params(
        params
    )