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", то контрольные точки модели будут сохраняться с номером эпохи и потерей на валидации в имени файла. Каталог пути к файлу не должен повторно использоваться другими обработчиками, чтобы избежать конфликтов.
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 целое число или строка. При использовании строки, обработчик сохраняет модель после каждой эпохи. При использовании целого числа, обработчик сохраняет модель в конце указанного количества итераций. Если Model скомпилирован с steps_per_execution=N, то критерии сохранения будут проверяться каждые N итераций. Обратите внимание, что если сохранение не выровнено по эпохам, отслеживаемая метрика может быть потенциально менее надёжной (она может отражать всего 1 итерацию, так как метрики сбрасываются в конце каждой эпохи). По умолчанию "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
)

Вызывается в начале эпохи.

Подклассы должны переопределять для выполнения любых действий. Эта функция должна вызываться только во время режима ОБУЧЕНИЯ.

Аргументы
epoch Целое число, индекс эпохи.
logs Словарь. В настоящее время данные не передаются в этот аргумент для этого метода, но это может измениться в будущем.

on_epoch_end

Просмотреть исходный код

on_epoch_end(
    epoch, logs=None
)

Вызывается в конце эпохи.

Подклассы должны переопределять для выполнения любых действий. Эта функция должна вызываться только во время режима ОБУЧЕНИЯ.

Аргументы
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