我正在使用tensorflow,并一直在训练一些模型并在每个时期之后使用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)

我的代码设置为每个时期保存一个模型,应相应地对其进行标记。但是,我注意到在训练了15个历时之后,我只有最后五个历时(10、11、12、13、14)的检查点文件。该文档没有对此进行任何说明,因此我无所适从。

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

有没有一种方法可以确保保留所有检查点?

最佳答案

您可以通过设置Saver参数(默认值为5)来选择create your max_to_keep object时要保存的检查点数量。

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

关于python-2.7 - Tensorflow,缺少检查点文件。保护程序仅允许保留5个检查点吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38265061/

10-12 22:51