tf.keras.callbacks.BackupAndRestore
Обработчик для резервного копирования и восстановления состояния обучения.
Наследуется от: Callback
tf.keras.callbacks.BackupAndRestore(
backup_dir
)
BackupAndRestore обработчик предназначен для восстановления обучения после прерывания в середине выполнения Model.fit, резервируя состояния обучения в временном файле контрольной точки (с помощью tf.train.CheckpointManager) в конце каждой эпохи. Каждое резервное копирование перезаписывает предыдущий файл контрольной точки, поэтому в любой момент времени существует не более одного такого файла контрольной точки для целей резервного копирования/восстановления.
Если обучение перезапускается до завершения, состояние обучения (включая Model веса и номер эпохи) восстанавливается до последнего сохраненного состояния в начале нового выполнения Model.fit. По завершении выполнения Model.fit временный файл контрольной точки удаляется.
Обратите внимание, что пользователь отвечает за возобновление работы после прерывания. Этот обработчик важен для механизма резервного копирования и восстановления для обеспечения отказоустойчивости, и ожидается, что модель, которая должна быть восстановлена из предыдущей контрольной точки, будет такой же, как и та, которая использовалась для резервного копирования. Если пользователь изменяет аргументы, передаваемые в compile или fit, сохраненная для обеспечения отказоустойчивости контрольная точка может стать недействительной.
Примечание:
- Этот обработчик несовместим с отключенным выполнением в режиме eager.
- Контрольная точка сохраняется в конце каждой эпохи. После восстановления
Model.fitповторно выполняет любую частичную работу в незавершенной эпохе, в которой возобновлялось обучение (поэтому работа, выполненная до прерывания, не влияет на конечное состояние модели). - Это работает как для однопоточного, так и для многопоточного режимов. При использовании
Model.fitсtf.distribute, он поддерживаетtf.distribute.MirroredStrategy,tf.distribute.MultiWorkerMirroredStrategy,tf.distribute.TPUStrategyиtf.distribute.experimental.ParameterServerStrategy.
Пример:
class InterruptingCallback(tf.keras.callbacks.Callback):
def on_epoch_begin(self, epoch, logs=None):
if epoch == 4:
raise RuntimeError('Interrupting!')
callback = tf.keras.callbacks.BackupAndRestore(backup_dir="/tmp/backup")
model = tf.keras.models.Sequential([tf.keras.layers.Dense(10)])
model.compile(tf.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 trainning got interrupted at
# zero-indexed epoch 4, second training will continue from 4 to 9.
len(history.history['loss'])
6
| Аргументы | |
|---|---|
backup_dir | Строка, путь для хранения контрольной точки. Например, backup_dir = os.path.join(working_dir, 'backup') Это каталог, в котором система хранит временные файлы для восстановления модели при неожиданном завершении работы задач. Каталог не может быть повторно использован для хранения других файлов, например, обработчиком BackupAndRestore другого обучения или другим обработчиком (ModelCheckpoint) того же обучения. |
Методы
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/versions/r2.9/api_docs/python/tf/keras/callbacks/BackupAndRestore