tf.keras.callbacks.EarlyStopping
Останавливает обучение, когда отслеживаемая метрика перестаёт улучшаться.
Наследуется от: Callback
tf.keras.callbacks.EarlyStopping(
monitor='val_loss',
min_delta=0,
patience=0,
verbose=0,
mode='auto',
baseline=None,
restore_best_weights=False,
start_from_epoch=0
)
Используется в блокнотах
| Используется в руководстве | Используется в руководствах |
|---|---|
Предположим, что цель обучения — минимизировать потери. В этом случае отслеживаемой метрикой будет 'loss', а режимом — 'min'. Цикл обучения model.fit() в конце каждой эпохи проверяет, перестали ли уменьшаться потери, учитывая min_delta и patience, если применимо. Как только обнаруживается, что потери больше не уменьшаются, для model.stop_training устанавливается значение True, и обучение завершается.
Отслеживаемая величина должна быть доступна в словаре logs. Чтобы обеспечить это, передайте потери или метрики в model.compile().
| Аргументы | |
|---|---|
monitor | Отслеживаемая величина. По умолчанию — "val_loss". |
min_delta | Минимальное изменение отслеживаемой величины, необходимое для того, чтобы считать его улучшением; абсолютное изменение меньше min_delta считается отсутствием улучшения. По умолчанию — 0. |
patience | Количество эпох без улучшения, после которого обучение будет остановлено. По умолчанию — 0. |
verbose | Режим подробности: 0 или 1. В режиме 0 сообщения не выводятся, в режиме 1 отображаются сообщения, когда обратный вызов выполняет действие. По умолчанию — 0. |
mode | Одно из значений {"auto", "min", "max"}. В режиме min обучение останавливается, когда отслеживаемая величина перестаёт уменьшаться; в режиме "max" — когда отслеживаемая величина перестаёт увеличиваться; в режиме "auto" направление определяется автоматически на основе имени отслеживаемой величины. По умолчанию — "auto". |
baseline | Базовое значение отслеживаемой величины. Если значение не None, обучение остановится, если модель не превзойдёт базовый уровень. По умолчанию — None. |
restore_best_weights | Следует ли восстановить веса модели из эпохи с наилучшим значением отслеживаемой величины. Если значение False, используются веса модели, полученные на последнем шаге обучения. Эпоха будет восстановлена независимо от результатов относительно baseline. Если ни одна эпоха не превзойдёт baseline, обучение продолжится в течение patience эпох, а веса будут восстановлены из лучшей эпохи в этом наборе. По умолчанию — False. |
start_from_epoch | Количество эпох ожидания перед началом отслеживания улучшений. Это позволяет задать период прогрева, в течение которого улучшений не ожидается и поэтому обучение не останавливается. По умолчанию — 0. |
Пример:
callback = keras.callbacks.EarlyStopping(monitor='loss',
patience=3)
# This callback will stop the training when there is no improvement in
# the loss for three consecutive epochs.
model = keras.models.Sequential([keras.layers.Dense(10)])
model.compile(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| Атрибуты | |
|---|---|
model | |
Методы
get_monitor_value
get_monitor_value(
logs
)
on_batch_begin
on_batch_begin(
batch, logs=None
)
Псевдоним для обратной совместимости с on_train_batch_begin.
on_batch_end
on_batch_end(
batch, logs=None
)
Псевдоним для обратной совместимости с on_train_batch_end.
on_epoch_begin
on_epoch_begin(
epoch, logs=None
)
Вызывается в начале эпохи.
Подклассам следует переопределить этот метод, чтобы выполнять необходимые действия. Эта функция должна вызываться только в режиме TRAIN.
| Аргументы | |
|---|---|
epoch | Целое число — индекс эпохи. |
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_epoch_end
on_epoch_end(
epoch, logs=None
)
Вызывается в конце эпохи.
Подклассам следует переопределить этот метод, чтобы выполнять необходимые действия. Эта функция должна вызываться только в режиме TRAIN.
| Аргументы | |
|---|---|
epoch | Целое число — индекс эпохи. |
logs | Словарь с результатами метрик для этой эпохи обучения и эпохи проверки, если выполняется проверка. Ключи результатов проверки имеют префикс val_. Для эпохи обучения возвращаются значения метрик объекта Model. Пример: {'loss': 0.2, 'accuracy': 0.7}. |
on_predict_batch_begin
on_predict_batch_begin(
batch, logs=None
)
Вызывается в начале пакета в методах predict.
Подклассам следует переопределить этот метод, чтобы выполнять необходимые действия.
Обратите внимание: если аргумент steps_per_execution метода compile в Model имеет значение N, этот метод будет вызываться только через каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число — индекс пакета в текущей эпохе. |
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_predict_batch_end
on_predict_batch_end(
batch, logs=None
)
Вызывается в конце пакета в методах predict.
Подклассам следует переопределить этот метод, чтобы выполнять необходимые действия.
Обратите внимание: если аргумент steps_per_execution метода compile в Model имеет значение N, этот метод будет вызываться только через каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число — индекс пакета в текущей эпохе. |
logs | Словарь. Агрегированные результаты метрик по текущий пакет включительно. |
on_predict_begin
on_predict_begin(
logs=None
)
Вызывается в начале предсказания.
Подклассам следует переопределить этот метод, чтобы выполнять необходимые действия.
| Аргументы | |
|---|---|
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_predict_end
on_predict_end(
logs=None
)
Вызывается в конце предсказания.
Подклассам следует переопределить этот метод, чтобы выполнять необходимые действия.
| Аргументы | |
|---|---|
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_test_batch_begin
on_test_batch_begin(
batch, logs=None
)
Вызывается в начале пакета в методах evaluate.
Также вызывается в начале пакета проверки в методах fit, если предоставлены данные проверки.
Подклассам следует переопределить этот метод, чтобы выполнять необходимые действия.
Обратите внимание: если аргумент steps_per_execution метода compile в Model имеет значение N, этот метод будет вызываться только через каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число — индекс пакета в текущей эпохе. |
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_test_batch_end
on_test_batch_end(
batch, logs=None
)
Вызывается в конце пакета в методах evaluate.
Также вызывается в конце пакета проверки в методах fit, если предоставлены данные проверки.
Подклассам следует переопределить этот метод, чтобы выполнять необходимые действия.
Обратите внимание: если аргумент steps_per_execution метода compile в Model имеет значение N, этот метод будет вызываться только через каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число — индекс пакета в текущей эпохе. |
logs | Словарь. Агрегированные результаты метрик по текущий пакет включительно. |
on_test_begin
on_test_begin(
logs=None
)
Вызывается в начале оценки или проверки.
Подклассам следует переопределить этот метод, чтобы выполнять необходимые действия.
| Аргументы | |
|---|---|
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_test_end
on_test_end(
logs=None
)
Вызывается в конце оценки или проверки.
Подклассам следует переопределить этот метод, чтобы выполнять необходимые действия.
| Аргументы | |
|---|---|
logs | Словарь. В настоящее время этому аргументу для данного метода передаётся результат последнего вызова on_test_batch_end(), но в будущем это может измениться. |
on_train_batch_begin
on_train_batch_begin(
batch, logs=None
)
Вызывается в начале обучающего пакета в методах fit.
Подклассам следует переопределить этот метод, чтобы выполнять необходимые действия.
Обратите внимание: если аргумент steps_per_execution метода compile в Model имеет значение N, этот метод будет вызываться только через каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число — индекс пакета в текущей эпохе. |
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_train_batch_end
on_train_batch_end(
batch, logs=None
)
Вызывается в конце обучающего пакета в методах fit.
Подклассам следует переопределить этот метод, чтобы выполнять необходимые действия.
Обратите внимание: если аргумент steps_per_execution метода compile в Model имеет значение N, этот метод будет вызываться только через каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число — индекс пакета в текущей эпохе. |
logs | Словарь. Агрегированные результаты метрик по текущий пакет включительно. |
on_train_begin
on_train_begin(
logs=None
)
Вызывается в начале обучения.
Подклассам следует переопределить этот метод, чтобы выполнять необходимые действия.
| Аргументы | |
|---|---|
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_train_end
on_train_end(
logs=None
)
Вызывается в конце обучения.
Подклассам следует переопределить этот метод, чтобы выполнять необходимые действия.
| Аргументы | |
|---|---|
logs | Словарь. В настоящее время этому аргументу для данного метода передаётся результат последнего вызова on_epoch_end(), но в будущем это может измениться. |
set_model
set_model(
model
)
set_params
set_params(
params
)
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/EarlyStopping