python - 使用 Saver 参数 `keep_checkpoint_every_n_hours` 的正确方法是什么?

标签 python tensorflow

我想在训练期间每 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

但是,我发现通过这样做,每次调用函数时都会保存模型。

我想我遗漏了一些东西或者没有以正确的方式使用它。 我想知道使用te​​nsorflow 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/

相关文章:

python - 属性错误: type object 'p' has no attribute 'speed'

python - __init__ 在 GUI 中与 tkinter

python-3.x - 如何从不同函数构建的图表中在 tensorflow 中使用 get_operation_by_name() ?

tensorflow - 如何在 tensorflow 2.0 中计算 hessian?

python - 无法将 Keras 模型转换为 tflite

python - Polar 日期 YYYY 周

python - MySQLdb._exceptions.OperationalError ('1046, No database selected' ) - Flask 到 mySQL 连接错误

python - 为什么我无法使用 SMTP 服务器发送超过 10 封电子邮件 (OUTLOOK)

python - Keras:改变训练模型的结构

python - TensorFlow 中可训练变量和不可训练变量的串联