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



来自张量流教程部分 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中是否有一种机制可以找出变量的名称?

tensorflow中的大多数对象都可以用字符串找到。

当你调用tf.placeholder(tf.float32)时,张量流将执行以下操作:

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

你可以为任何节点设置一个名称,比如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}

最新更新