BackupAndRestore
类keras.callbacks.BackupAndRestore(
backup_dir, save_freq="epoch", delete_checkpoint=True
)
用于备份和恢复训练状态的回调。
BackupAndRestore
回调旨在通过在每个 epoch 结束时将训练状态备份到一个临时检查点文件,来从 Model.fit
执行过程中的中断中恢复训练。
如果训练在完成之前重新启动,则训练状态(包括 Model
权重和 epoch 数量)将在新的 Model.fit
运行开始时恢复到最近保存的状态。在 Model.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
参数
BackupAndRestore
回调,或由同一训练运行的另一个回调(例如 ModelCheckpoint
)使用。"epoch"
、整数或 False
。当设置为 "epoch"
时,回调在每个 epoch 结束时保存检查点。当设置为整数时,回调每 save_freq
个批次保存检查点。仅在使用抢占式检查点时(即使用 save_before_preemption=True
)将 save_freq
设置为 False
。BackupAndRestore
回调通过保存检查点来备份训练状态。如果 delete_checkpoint=True
,则训练完成后将删除检查点。如果您想保留检查点以备将来使用,请使用 False
。默认值为 True
。