Spec-Zone.ru › TensorFlow

tf.keras.callbacks.ModelCheckpoint

Обратный вызов для сохранения модели Keras или весов модели с заданной периодичностью.

Наследует от: Callback

tf.keras.callbacks.ModelCheckpoint(
    filepath,
    monitor='val_loss',
    verbose=0,
    save_best_only=False,
    save_weights_only=False,
    mode='auto',
    save_freq='epoch',
    initial_value_threshold=None
)

Используется в блокнотах

Используется в руководстве Используется в учебных материалах
  • Перенос сохранения контрольных точек
  • Перенос оценки
  • Обучение на нескольких GPU и распределенное обучение
  • Сохранение и загрузка моделей
  • Создание музыки с помощью RNN
  • Распределенное обучение с Keras
  • Обучение с сервером параметров и ParameterServerStrategy
  • Классификация поз человека с помощью MoveNet и TensorFlow Lite

Обратный вызов ModelCheckpoint используется при обучении с помощью model.fit() для сохранения модели или весов (в файле контрольной точки) с заданным интервалом, чтобы позднее загрузить модель или веса и продолжить обучение с сохраненного состояния.

Этот обратный вызов предоставляет несколько параметров:

  • Сохранять только модель, которая на данный момент достигла «наилучших результатов», или сохранять модель в конце каждой эпохи независимо от результатов.
  • Определение понятия «наилучший результат»: какую величину отслеживать и следует ли ее максимизировать или минимизировать.
  • Частота сохранения. В настоящее время обратный вызов поддерживает сохранение в конце каждой эпохи или после фиксированного количества обучающих пакетов.
  • Сохранять только веса или всю модель.

Пример:

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

EPOCHS = 10
checkpoint_filepath = '/tmp/ckpt/checkpoint.model.keras'
model_checkpoint_callback = keras.callbacks.ModelCheckpoint(
    filepath=checkpoint_filepath,
    monitor='val_accuracy',
    mode='max',
    save_best_only=True)

# Model is saved at the end of every epoch, if it's the best seen so far.
model.fit(epochs=EPOCHS, callbacks=[model_checkpoint_callback])

# The model (that are considered the best) can be loaded as -
keras.models.load_model(checkpoint_filepath)

# Alternatively, one could checkpoint just the model weights as -
checkpoint_filepath = '/tmp/ckpt/checkpoint.weights.h5'
model_checkpoint_callback = keras.callbacks.ModelCheckpoint(
    filepath=checkpoint_filepath,
    save_weights_only=True,
    monitor='val_accuracy',
    mode='max',
    save_best_only=True)

# Model weights are saved at the end of every epoch, if it's the best seen
# so far.
model.fit(epochs=EPOCHS, callbacks=[model_checkpoint_callback])

# The model weights (that are considered the best) can be loaded as -
model.load_weights(checkpoint_filepath)
Аргументы
filepath строка или PathLike, путь для сохранения файла модели. filepath может содержать именованные параметры форматирования, значения которых будут подставлены из epoch и ключей в logs (передаваемых в on_epoch_end). Имя filepath должно оканчиваться на ".weights.h5", если используется save_weights_only=True, или на ".keras", если сохраняется вся модель в виде контрольной точки (по умолчанию). Например, если filepath равно "{epoch:02d}-{val_loss:.2f}.keras", контрольные точки модели будут сохраняться с номером эпохи и значением потерь на проверочных данных в имени файла. Во избежание конфликтов каталог, указанный в filepath, не должен использоваться другими обратными вызовами.
monitor Имя метрики, которую нужно отслеживать. Обычно метрики задаются методом Model.compile. Примечание:
  • Добавьте префикс "val_", чтобы отслеживать метрики проверки.
  • Используйте "loss" или "val_loss", чтобы отслеживать общие потери модели.
  • Если вы задаете метрики в виде строк, например "accuracy", передайте ту же строку (с префиксом "val_" или без него).
  • Если вы передаете объекты metrics.Metric, значение monitor должно быть задано как metric.name
  • Если вы не уверены в названиях метрик, можно проверить содержимое словаря history.history, возвращаемого методом history = model.fit()
  • В моделях с несколькими выходами к названиям метрик добавляются дополнительные префиксы.
verbose Режим подробного вывода: 0 или 1. В режиме 0 вывод отсутствует, в режиме 1 отображаются сообщения при выполнении действия обратным вызовом.
save_best_only Если save_best_only=True, модель сохраняется только тогда, когда считается «наилучшей», и последняя модель с наилучшими результатами по отслеживаемой величине не перезаписывается. Если filepath не содержит параметров форматирования, таких как {epoch}, значение filepath будет перезаписываться при появлении каждой новой, более эффективной модели.
mode одно из значений {"auto", "min", "max"}. Если задано save_best_only=True, решение о перезаписи текущего файла сохранения принимается на основе максимизации или минимизации отслеживаемой величины. Для val_acc это должно быть "max", для val_loss — "min" и т. д. В режиме "auto" режим устанавливается в "max", если отслеживаемые величины являются "acc" или начинаются с "fmeasure", а для остальных величин устанавливается "min".
save_weights_only Если True, сохраняются только веса модели (model.save_weights(filepath)), иначе сохраняется вся модель (model.save(filepath)).
save_freq "epoch" или целое число. При использовании "epoch" модель сохраняется после каждой эпохи. Если задано целое число, обратный вызов сохраняет модель по завершении указанного количества пакетов. Если Model скомпилирован с steps_per_execution=N, критерий сохранения будет проверяться на каждом N-м пакете. Обратите внимание: если сохранение не совпадает с границами эпох, отслеживаемая метрика может быть менее надежной (она может отражать всего один пакет, поскольку метрики сбрасываются в каждой эпохе). По умолчанию — "epoch".
initial_value_threshold Начальное значение метрики с плавающей точкой, считающееся «наилучшим». Применяется только при save_best_value=True. Уже сохраненные веса модели перезаписываются, только если результаты текущей модели лучше этого значения.
Атрибуты
model

Методы

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/ModelCheckpoint

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API