使用TensorFlow中的feed_dict将值提供给变量

时间:2017-05-05 07:06:00

标签: variables tensorflow variable-assignment

我通过 https://www.tensorflow.org/get_started/mnist/pros 。 阅读"请注意,您可以使用feed_dict替换计算图中的任何张量 - 它不仅限于占位符,"我尝试使用feed_dict为变量赋值,如下所示:

print(accuracy.eval(feed_dict={x: mnist.test.images, y_: mnist.test.labels, 
                           W[:, :]: np.zeros((784, 10))}))

然而,它给出了原始准确度0.9149(我预计在0.1左右)。 使用feed_dict初始化后,我可以为变量赋予常量值吗?

2 个答案:

答案 0 :(得分:2)

在你的答案中,你已经将常数零传递给W,这是一个变量。

中的陈述
  

请注意,您可以使用feed_dict替换计算图中的任何张量 - 它不仅限于占位符

您通过feed_dict传入图表的所有内容都是(通常是numpy)常量,因此您也可以得到肯定答案。

答案 1 :(得分:0)

在将值馈送到偶然用于工作的(非资源)变量it should not work actually时。我非常怀疑您正在使用资源变量。

您可以使用load

with tf.Session() as sess:
    var1 = tf.get_variable('var1', initializer=5.)  # var1 has value 5.
    sess.run(tf.global_variables_initializer())
    x = var1 ** 2 + 1.
    sess.run(x)  # -> 26 (=5**2 + 1)
    var1.load(value=3., session=sess)  # now var1 has value 3.
    sess.run(x)  # -> 10 (=3**2 + 1)