我正在学习张量流,并使用训练有素的亚历山大重量进行实验。
我在13000次迭代后保存,我试图在恢复后重新训练模型。
但是在恢复之后,权重不会随初始化中使用的值而改变。
为什么会这样?所有代码(甚至是tensorflow官方网站)都只介绍了要恢复的代码:
saver.restore(sess, "/tmp/model.ckpt")
但是这段代码对变量没有任何影响。
如您所见,恢复后,'session.run('conv / kernel:0')执行的称为'conv2 / kernel'的权重与'model- + 13000.ckpt'
我认为很多人都会在这个问题上苦苦挣扎。
谢谢
答案 0 :(得分:2)
如果您从检查点恢复模型,则不再想要使用tf.global_variables_initializer()
。 (你只是在训练开始之前第一次创建模型来初始化权重时这样做,否则你基本上是从头开始重新开始。)
这应该更好:
saver.restore(sess, "/tmp/model.ckpt")
print sess.run('conv/kernel:0')