Learning rate scheduler.

Inherits From: Callback

Used in the notebooks

Used in the tutorials

At the beginning of every epoch, this callback gets the updated learning rate value from schedule function provided at __init__, with the current epoch and current learning rate, and applies the updated learning rate on the optimizer.

schedule a function that takes an epoch index (integer, indexed from 0) and current learning rate (float) as inputs and returns a new learning rate as output (float).
verbose int. 0: quiet, 1: update messages.


# This function keeps the initial learning rate for the first ten epochs
# and decreases it exponentially after that.
def scheduler(epoch, lr):
  if epoch < 10:
    return lr
    return lr * tf.math.exp(-0.1)

model = tf.keras.models.Sequential([tf.keras.layers.Dense(10)])
model.compile(tf.keras.optimizers.SGD(), loss='mse')
round(, 5)
callback = tf.keras.callbacks.LearningRateScheduler(scheduler)
history =, 20), np.zeros(5),
                    epochs=15, callbacks=[callback], verbose=0)