tf.keras.callbacks.BackupAndRestore
Callback для резервного копирования и восстановления состояния обучения.
Наследуется от: Callback
tf.keras.callbacks.BackupAndRestore(
backup_dir, save_freq='epoch', delete_checkpoint=True
)
Используется в блокнотах
| Используется в руководстве | Используется в учебных материалах |
|---|---|
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