TensorFlow)为什么恢复后变量没有赋值?

Tensorflow) Why variables are not assigned after restoration?

我正在学习 tensorflow 并使用 alexnet 的预训练权重进行实验。

我在 13000 次迭代后保存,我正在尝试在恢复后重新训练模型。

但是恢复后,权重并没有随着初始化时使用的值改变。

为什么会这样?所有代码(甚至,tensorflow官网)只是介绍恢复的代码:

saver.restore(sess, "/tmp/model.ckpt")

但是这段代码对变量没有任何影响。

结果图片如下:

如你所见,恢复后,'session.run('conv/kernel:0')执行的名为'conv2/kernel'的权重与'model-+13000.ckpt'[=12=执行的权重不同]

我想很多人都会为这个问题而苦恼。

谢谢

如果您从检查点恢复模型,您不想再使用 tf.global_variables_initializer()。 (你只需在训练开始前第一次创建模型时初始化权重,否则你基本上是从头开始。)

这应该会更好:

saver.restore(sess, "/tmp/model.ckpt")
print sess.run('conv/kernel:0')