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')
我正在学习 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')