How to implement early stopping in a Keras model?

Published on Aug. 22, 2023, 12:19 p.m.

To implement early stopping in a Keras model, you can use the EarlyStopping callback from Keras. This callback allows you to specify a metric to monitor during training, and will stop training if the monitored metric stops improving.

Here is an example of how to use the EarlyStopping callback:

from tensorflow import keras

model = keras.Sequential([keras.layers.Dense(10, input_shape=(784,), activation='softmax')])

model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

early_stop = keras.callbacks.EarlyStopping(monitor='val_loss', patience=3)

history = model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels), callbacks=[early_stop])

In this example, monitor='val_loss' means that we will monitor the validation loss during training, and patience=3 means that we will stop training after 3 epochs of no improvement in the validation loss.

You can also specify additional arguments to the EarlyStopping callback, such as mode='min' to specify that the metric should be minimized, or restore_best_weights=True to automatically restore the weights of the best-performing model during training.

Once training is complete, you can access the training history and metrics using the history object returned by fit().