繁体   English   中英

使用 Keras 训练深度学习检查点

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM