tf.keras.callbacks.BackupAndRestore
Обработчик для резервного копирования и восстановления состояния обучения.
Наследуется от: Callback
tf.keras.callbacks.BackupAndRestore(
backup_dir, save_freq='epoch', delete_checkpoint=True
)
Используется в ноутбуках
| Используется в руководстве | Используется в учебниках |
|---|---|
BackupAndRestore обработчик предназначен для восстановления обучения после прерывания в процессе выполнения Model.fit, сохраняя состояние обучения в временном файле-чекпойнте в конце каждой эпохи. Каждое резервное копирование перезаписывает предыдущий файл чекпойнта, поэтому в любой момент времени существует не более одного такого файла для резервного копирования/восстановления.
Если обучение возобновляется до завершения, состояние обучения (включая Model веса и номер эпохи) восстанавливается до последнего сохранённого состояния в начале новой Model.fit сессии. По завершении Model.fit сессии временный файл чекпойнта удаляется.
Обратите внимание, что пользователь отвечает за возвращение работы после прерывания. Этот обработчик важен для механизма резервного копирования и восстановления для обеспечения отказоустойчивости, и ожидается, что модель, восстанавливаемая из предыдущего чекпойнта, будет такой же, как и та, которая использовалась для резервного копирования. Если пользователь изменяет аргументы, передаваемые в 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 | Строка, путь к каталогу, где будут храниться данные для восстановления модели. Каталог не может быть повторно использован для хранения других файлов, например, обработчиком BackupAndRestore другой обучающей сессии или другим обработчиком (например, ModelCheckpoint) той же обучающей сессии. |
save_freq | "epoch", целое число или False. При значении "epoch" обработчик сохраняет чекпоинт в конце каждой эпохи. При значении в виде целого числа обработчик сохраняет чекпоинт каждые save_freq батчи. Установите save_freq=False только в случае использования прерывания чекпоинта (т. е. с save_before_preemption=True). |
delete_checkpoint | Булево значение, по умолчанию True. Этот 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
)
Вызывается в начале эпохи.
Подклассы должны переопределять для выполнения любых действий. Данная функция должна вызываться только в режиме обучения.
| Аргументы | |
|---|---|
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
)
Получить состояние обучения из временного файла и восстановить его.
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