tensorflow session.run()方法如何知道占位符变量的名称?

时间:2018-08-16 03:57:20

标签: python tensorflow

在tensorflow教程部分https://www.tensorflow.org/guide/low_level_intro#feeding中 下面的代码创建占位符并将其分配给变量“ x”和“ y”,并传递给run方法。

x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)
z = x + y

print(sess.run(z, feed_dict={x: 3, y: 4.5}))

sess.run()方法如何知道变量“ x”和“ y”的名称。即。 run方法如何知道feed_dict参数的键。 python中有一种机制可以弄清楚变量的名称吗?

1 个答案:

答案 0 :(得分:1)

张量流中的大多数对象都可以通过字符串找到。

当您调用tf.placeholder(tf.float32)时,tensorflow将执行以下操作:

  • 使用Placeholder op
  • 创建一个节点
  • 将此节点添加到默认图形
  • 返回节点输出张量

您可以为任何节点设置一个名称,例如tf.placeholder(tf.float32, name='myplaceholder'),如果您未指定节点名称,则tensorflow会生成一个名称,您可以使用print x.op来查看操作的名称。

以节点名称加上输出索引命名张量,例如

x = tf.placeholder(tf.float32)
print x

您会看到类似Placeholder:0的名称,即张量名称。

因此,在您的代码中,tensorflow首先可以从x获取张量名称,然后迭代默认图以找到合适的节点。

您还可以将字符串用于feed_dict {"Placeholder:0": 3}