我想在训练期间每 5 小时保存一次 tensorflow 变量。
所以,根据 Tensorflow Saver doc ,我用参数 keep_checkpoint_every_n_hours=5
构造了 saver = Saver
,并为学习的每一步调用了 saver.save()
。因此,我期望的是保护程序模块以某种方式检测开始训练后耗时,并每 5 小时保存一次模型,而不是为调用它的每个步骤实际保存模型。
下面简化了我如何使用该功能。
sess = tf.Session()
model = Model(sess)
saver = tf.train.Saver(max_to_keep=5,
keep_checkpoint_every_n_hours=5)
step_count = 0
max_step = 10000
while step_count < max_step:
model.train()
saver.save(sess, 'model', global_step=step_count)
step_count += 1
但是,我发现通过这样做,每次调用函数时都会保存模型。
我想我遗漏了一些东西或者没有以正确的方式使用它。 我想知道使用tensorflow Saver功能的正确方法。
提前谢谢您。
最佳答案
max_to_keep参数指定每次保存一个检查点,但一次最多保留5个检查点。
keep_checkpoint_every_n_hours 另一方面指定每 N 小时保存一个检查点并且不会被删除或覆盖。
因此,我建议使用 keep_checkpoint_every_n_hours 以防您的训练需要很长时间并且可能会出现偏差。因此,如果最后 5 个检查点变得同样无用,您可以恢复到最多 N 小时前的检查点。
关于python - 使用 Saver 参数 `keep_checkpoint_every_n_hours` 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56106447/