【问题标题】:Retrieving data from TensorFlow object - list of booleans from correct_prediction从 TensorFlow 对象中检索数据 - 来自正确预测的布尔值列表
【发布时间】:2016-03-08 21:10:54
【问题描述】:

我正在阅读 MNIST 初学者教程 (http://www.tensorflow.org/tutorials/mnist/beginners/index.html) 并尝试从正确预测张量对象中获取准确预测值的布尔列表。我觉得这很混乱。

根据教程 correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) 支持给我们一个布尔值列表:

这给了我们一个布尔值列表。确定分数是多少 正确,我们转换为浮点数,然后取平均值。为了 例如,[True, False, True, True] 将变为 [1,0,1,1] 这将 变成 0.75。

但是,尝试correct_prediction[0] 会得到<tensorflow.python.framework.ops.Tensor at 0x111a404d0>type(correct_prediction) 给了我们tensorflow.python.framework.ops.Tensor 这不是一个列表。调用dir() 来查看方法,然后调用correct_prediction.__getitem__(0) 给我们<tensorflow.python.framework.ops.Tensor at 0x111386f50>

如何访问预测布尔值列表以及 y、W 和 b 的值?是否应该从 tf.Session 以某种方式访问​​它们?

非常感谢!

【问题讨论】:

    标签: python machine-learning neural-network tensorflow


    【解决方案1】:

    张量变量实际上描述了为了获得您感兴趣的值而必须执行的计算。

    换句话说,用correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) 定义的张量不包含布尔值列表,它包含在张量流图中计算它的指令。为了获得实际值,您需要告诉 tensorflow 在图中计算它。

    首先,您需要一个tf.Session 变量。在交互式 shell 中进行测试的一种简单方法是 sess = tf.InteractiveSession(),然后是变量初始化:sess.run(tf.initialize_all_variables())

    然后,您可以调用sess.run(tensor_variable) 来计算给定张量(或它们的列表)的值。如果您的张量在其计算中包含占位符(通常会这样做),您还必须提供一个提要字典。教程中对此进行了举例说明。

    除了session.run(),您还可以从张量调用.eval() 方法。这也需要存在一个默认会话。

    【讨论】:

      猜你喜欢
      • 2015-07-03
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-13
      • 2019-12-10
      相关资源
      最近更新 更多