[英]Training checkpoints for deep learning with Keras
我正在使用 Google Colab,并节省了我的驱动器的重量。
训练:
def train(model, network_input, network_output):
""" train the neural network """
filepath = "/content/gdrive/MyDrive/weights-improvement-{epoch:02d}-{loss:.4f}-bigger.hdf5"
checkpoint = ModelCheckpoint(
filepath,
monitor='loss',
verbose=0,
save_best_only=True,
mode='min'
)
callbacks_list = [checkpoint]
model.fit(network_input, network_output, epochs=200, batch_size=128, callbacks=callbacks_list)
经过一段时间的训练,我有了重量:我的驱动器中的重量
然后我在不修改函数的情况下恢复训练,output 单元格如下所示: output 单元格
我怎么知道训练是从目前为止最好的权重开始的,即“weights-improvement-06-4.1851-bigger.hdf5”,还是刚刚从头开始? 如果它是通过保存的重量进行训练,它不应该以某种方式显示吗? 也许向我展示了从 Epoch 4/200 而不是 1/200 开始的 epochs 从它停止的地方继续。
如果您仍在使用相同的实例化 model object(即您还没有实例化一个新的),它将从中断的地方恢复训练 - 它不会重新开始。
但是,如果您想使用相同的配置实例化一个新的 model 并从之前保存的一组权重(检查点)开始,您可以使用 tensorflow 的latest_checkpoint
从您的目录中加载最新的检查点权重,然后再将这些权重传递给 model。
from tensorflow.train import latest_checkpoint
last_ckpt = latest_checkpoint(os.path.join('my','checkpoint','directory'))
# this is the newly instantiated model using the same config
model.load_weights(last_ckpt)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.