Python 2.7 在tensorflow中保存检查点并恢复培训

Python 2.7 在tensorflow中保存检查点并恢复培训,python-2.7,tensorflow,Python 2.7,Tensorflow,我在玩保存检查点和从保存的检查点恢复训练的游戏。我是按照以下的例子: 为了简单起见,我没有使用任何“真实”的网络培训。我刚刚执行了一个简单的减法运算,每个检查点在相同的张量上一次又一次地保存相同的运算。 以下ipython笔记本提供了一个最简单的示例- 在第一阶段,我运行循环100次(通过在代码中设置变量'endIter=100'的值),并每10次迭代保存一次检查点。因此,保存的检查点编号为-9、19、…、99。现在,当我将“enditer”值更改为200并恢复训练时,检查点再次开始从9、19、

我在玩保存检查点和从保存的检查点恢复训练的游戏。我是按照以下的例子: 为了简单起见,我没有使用任何“真实”的网络培训。我刚刚执行了一个简单的减法运算,每个检查点在相同的张量上一次又一次地保存相同的运算。 以下ipython笔记本提供了一个最简单的示例-


在第一阶段,我运行循环100次(通过在代码中设置变量'endIter=100'的值),并每10次迭代保存一次检查点。因此,保存的检查点编号为-9、19、…、99。现在,当我将“enditer”值更改为200并恢复训练时,检查点再次开始从9、19、。。。(不是109、119、129……)。有我遗漏的技巧吗?

你能打印出“最新的ckpt”并查看它是否指向最新的ckpt文件吗?此外,还需要使用tf.variable维护全局_步骤:

global_step = tf.Variable(0, name='global_step', trainable=False)
...
ckpt = tf.train.get_checkpoint_state(ckpt_dir)
if ckpt and ckpt.model_checkpoint_path:
    print ckpt.model_checkpoint_path
    saver.restore(sess, ckpt.model_checkpoint_path) # restore all variables
start = global_step.eval() # get last global_step
print "Start from:", start

for i in range(start, 100):
...
    global_step.assign(i).eval() # set and update(eval) global_step with index, i
    saver.save(sess, ckpt_dir + "/model.ckpt", global_step=global_step)
您可以查看完整的示例:


谢谢您的回复。我通过打印“latest_ckpt”检查它是否指向最新的ckpt文件。从全局_步长变量和教程链接的使用中获取指针,我也改变了方法。我没有使用变量,而是从保存的检查点文件名中读取最新保存的迭代编号。我使用DeepMNIST教程创建了一个保存和恢复培训的完整示例。可以在下面的要点链接中找到它。请看一看。