【问题标题】:Feeding values to a Variable using feed_dict in TensorFlow在 TensorFlow 中使用 feed_dict 将值提供给变量
【发布时间】:2017-05-05 07:06:00
【问题描述】:

我通过 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 初始化后为变量赋予常量值吗?

【问题讨论】:

  • 我相信 W 没有被覆盖,因为您正在调用它的切片。 W: np.zeros((784, 10)) 有效吗?

标签: variables tensorflow variable-assignment


【解决方案1】:

在您的答案中,您已经将常量零传递给 W 这是一个变量。而在声明中

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

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

【讨论】:

    【解决方案2】:

    在将值提供给曾经偶然工作的(非资源)变量时,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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-07
      • 1970-01-01
      • 1970-01-01
      • 2017-08-02
      • 2018-06-14
      • 2016-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多