python 2.7 - Tensorflow,缺少检查点文件.保护程序是否只允许保留 5 个检查点



我正在使用张量流,并且一直在训练一些模型,并在每个纪元后使用tf.saver()方法保存它们。我能够很好地保存和加载模型,并且我以通常的方式执行此操作。

with tf.Graph().as_default(), tf.Session() as session:
    initialiser = tf.random_normal_initializer(config.mean, config.std)
    with tf.variable_scope("model",reuse=None, initializer=initialiser):
        m = a2p(session, config, training=True)
    saver = tf.train.Saver()   
    ckpt = tf.train.get_checkpoint_state(model_dir)
    if ckpt and tf.gfile.Exists(ckpt.model_checkpoint_path)
        saver.restore(session, ckpt.model_checkpoint_path)
    ...
    for i in range(epochs):
       runepoch()
       save_path = saver.save(session, '%s.ckpt'%i)

我的代码设置为为每个纪元保存一个模型,该模型应相应地标记。但是,我注意到经过十五个纪元的训练,我只有最近五个纪元(10、11、12、13、14)的检查点文件。文档没有对此进行任何说明,因此我不知道为什么会发生这种情况。

保护程序只允许保留五个检查点还是我做错了什么?

有没有办法确保保留所有检查点?

您可以通过

将默认为 5 的 max_to_keep 参数设置为 5 来选择要在创建 Saver 对象时保存多少个检查点。

saver = tf.train.Saver(max_to_keep=10000)

设置max_to_keep=None实际上使保护程序保留所有检查点。例如,

saver = tf.train.Saver(max_to_keep=None)

最新更新