【问题标题】:Tensorflow) Why variables are not assigned after restoration?Tensorflow)为什么恢复后没有分配变量?
【发布时间】:2017-05-27 12:17:05
【问题描述】:

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

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

但恢复后,权重不会随着初始化时使用的值而改变。

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

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

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

结果图片如下:

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

我想很多人都会在这个问题上苦苦挣扎。

谢谢

【问题讨论】:

    标签: tensorflow deep-learning conv-neural-network tensorflow-serving


    【解决方案1】:

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

    这应该会更好:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多