Tensorflow,缺少检查点文件.保护者只允许保留5个检查点吗?

Eli*_*Eli 4 python-2.7 tensorflow

我正在使用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)
Run Code Online (Sandbox Code Playgroud)

我的代码设置为保存每个时期的模型,应该相应地标记.但是,我注意到,在十五个训练时期之后,我只有最后五个时期的检查点文件(10,11,12,13,14).文档没有说明这一点,所以我不知道为什么会发生这种情况.

保护者是否仅允许保留五个检查点或我做错了什么?

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

Sty*_*rke 9

您可以通过设置默认值为5 的参数来选择在创建Saver对象时要保存的检查点数max_to_keep.

saver = tf.train.Saver(max_to_keep=10000)
Run Code Online (Sandbox Code Playgroud)

  • 在大多数情况下,还有"keep_checkpoint_every_n_hours"arg. (2认同)
  • 我不明白为什么首先有一个默认值,如果我使用`Saver`我这样做是为了保存一些东西,为什么我要扔掉我明确想要保存的东西? (2认同)