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
)
Используется в блокнотах
| Используется в руководстве | Используется в учебных материалах |
|---|---|
Обратный вызов 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. Примечание:
|
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