Spec-Zone.ru › TensorFlow

tf.keras.callbacks.BackupAndRestore

Callback для резервного копирования и восстановления состояния обучения.

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

tf.keras.callbacks.BackupAndRestore(
    backup_dir, save_freq='epoch', delete_checkpoint=True
)

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

Используется в руководстве Используется в учебных материалах
  • Перенос механизма отказоустойчивости
  • Обучение с несколькими рабочими узлами с помощью Keras
  • Обучение с сервером параметров с помощью ParameterServerStrategy

Callback BackupAndRestore предназначен для возобновления обучения после прерывания, произошедшего во время выполнения Model.fit, путём сохранения состояния обучения во временный файл контрольной точки в конце каждой эпохи. Каждая резервная копия перезаписывает предыдущий файл контрольной точки, поэтому в любой момент времени существует не более одного такого файла, используемого для резервного копирования и восстановления.

Если обучение возобновляется до завершения, состояние обучения (включая веса Model и номер эпохи) восстанавливается до последнего сохранённого состояния в начале нового запуска Model.fit. По завершении запуска Model.fit временный файл контрольной точки удаляется.

Обратите внимание, что после прерывания пользователь должен самостоятельно перезапустить задания. Этот callback важен для механизма резервного копирования и восстановления, обеспечивающего отказоустойчивость. Предполагается, что модель, восстанавливаемая из предыдущей контрольной точки, совпадает с моделью, состояние которой было сохранено. Если пользователь изменит аргументы, переданные в compile или fit, контрольная точка, сохранённая для обеспечения отказоустойчивости, может стать недействительной.

Пример:

class InterruptingCallback(keras.callbacks.Callback):
  def on_epoch_begin(self, epoch, logs=None):
    if epoch == 4:
      raise RuntimeError('Interrupting!')
callback = keras.callbacks.BackupAndRestore(backup_dir="/tmp/backup")
model = keras.models.Sequential([keras.layers.Dense(10)])
model.compile(keras.optimizers.SGD(), loss='mse')
try:
  model.fit(np.arange(100).reshape(5, 20), np.zeros(5), epochs=10,
            batch_size=1, callbacks=[callback, InterruptingCallback()],
            verbose=0)
except:
  pass
history = model.fit(np.arange(100).reshape(5, 20), np.zeros(5),
                    epochs=10, batch_size=1, callbacks=[callback],
                    verbose=0)
# Only 6 more epochs are run, since first training got interrupted at
# zero-indexed epoch 4, second training will continue from 4 to 9.
len(history.history['loss'])
6
Аргументы
backup_dir Строка — путь к каталогу, в котором будут храниться данные, необходимые для восстановления модели. Этот каталог нельзя использовать повторно для хранения других файлов, например, для callback BackupAndRestore другого запуска обучения или для другого callback (например, ModelCheckpoint) в рамках того же запуска обучения.
save_freq "epoch", целое число или False. Если задано значение "epoch", callback сохраняет контрольную точку в конце каждой эпохи. Если задано целое число, callback сохраняет контрольную точку каждые save_freq пакетов. Задавайте save_freq=False только при использовании контрольных точек для вытесняемых задач (то есть с save_before_preemption=True).
delete_checkpoint Логическое значение; по умолчанию — True. Этот callback BackupAndRestore сохраняет контрольную точку для резервного копирования состояния обучения. Если задано delete_checkpoint=True, после завершения обучения контрольная точка будет удалена. Используйте False, если хотите сохранить контрольную точку для дальнейшего использования.
Атрибуты
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
)

Получает состояние обучения из временного файла и восстанавливает его.

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

Spec-Zone.ru

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