|TensorFlow 1 version||View source on GitHub|
Stop training when a monitored metric has stopped improving.
Compat aliases for migration
See Migration guide for more details.
tf.keras.callbacks.EarlyStopping( monitor='val_loss', min_delta=0, patience=0, verbose=0, mode='auto', baseline=None, restore_best_weights=False )
Assuming the goal of a training is to minimize the loss. With this, the
metric to be monitored would be 'loss', and mode would be 'min'. A
model.fit() training loop will check at end of every epoch whether
the loss is no longer decreasing, considering the
patience if applicable. Once it's found no longer decreasing,
model.stop_training is marked True and the training terminates.
The quantity to be monitored needs to be available in
To make it so, pass the loss or metrics at
callback = tf.keras.callbacks.EarlyStopping(monitor='loss', patience=3)
# This callback will stop the training when there is no improvement in
# the validation loss for three consecutive epochs.
model = tf.keras.models.Sequential([tf.keras.layers.Dense(10)])
history = model.fit(np.arange(100).reshape(5, 20), np.zeros(5),
epochs=10, batch_size=1, callbacks=[callback],
len(history.history['loss']) # Only 4 epochs are run.
||Quantity to be monitored.|
||Minimum change in the monitored quantity to qualify as an improvement, i.e. an absolute change of less than min_delta, will count as no improvement.|
||Number of epochs with no improvement after which training will be stopped.|
||Baseline value for the monitored quantity. Training will stop if the model doesn't show improvement over the baseline.|
||Whether to restore model weights from the epoch with the best value of the monitored quantity. If False, the model weights obtained at the last step of training are used.|
get_monitor_value( logs )
set_model( model )
set_params( params )