tf.keras.callbacks.EarlyStopping
| Просмотреть исходный код на GitHub |
Останавливает обучение, когда отслеживаемый метрика перестаёт улучшаться.
Наследуется от: Callback
tf.keras.callbacks.EarlyStopping(
monitor='val_loss', min_delta=0, patience=0, verbose=0,
mode='auto', baseline=None, restore_best_weights=False
)
Предполагая, что целью обучения является минимизация потери. В этом случае, метрика, которая будет отслеживаться, это 'loss', а режим — 'min'. Цикл обучения model.fit() будет проверять в конце каждой эпохи, не перестала ли уменьшаться потеря, учитывая min_delta и patience, если применимо. Как только будет обнаружено, что она больше не уменьшается, model.stop_training устанавливается в значение True, и обучение прекращается.
Отслеживаемая величина должна быть доступна в словаре logs. Для этого передайте значение потери или метрики в model.compile().
| Аргументы | |
|---|---|
monitor | Величина, которая должна отслеживаться. |
min_delta | Минимальное изменение отслеживаемой величины, необходимое для признания улучшения, т.е. абсолютное изменение меньше, чем min_delta, будет считаться отсутствием улучшения. |
patience | Количество эпох без улучшения, после чего обучение будет остановлено. |
verbose | Режим отображения. |
mode | Одно из значений {"auto", "min", "max"}. В режиме min обучение прекратится, когда отслеживаемая величина перестанет уменьшаться; в режиме "max" оно остановится, когда отслеживаемая величина перестанет увеличиваться; в режиме "auto" направление автоматически определяется по имени отслеживаемой величины. |
baseline | Базовое значение отслеживаемой величины. Обучение остановится, если модель не покажет улучшения по сравнению с базовым значением. |
restore_best_weights | Нужно ли восстановить веса модели из эпохи с наилучшим значением отслеживаемой величины. Если False, используются веса модели, полученные на последнем шаге обучения. |
Пример:
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)])
model.compile(tf.keras.optimizers.SGD(), loss='mse')
history = model.fit(np.arange(100).reshape(5, 20), np.zeros(5),
epochs=10, batch_size=1, callbacks=[callback],
verbose=0)
len(history.history['loss']) # Only 4 epochs are run.
4
Методы
get_monitor_value
get_monitor_value(
logs
)
set_model
set_model(
model
)
set_params
set_params(
params
)
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/keras/callbacks/EarlyStopping