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
)
Вызывается в начале предсказания.
Подклассы должны переопределять для любых действий, которые нужно выполнить.
END_OF_DOCUMENT_MARKER| Аргументы | |
|---|---|
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