在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中有一种机制可以弄清楚变量的名称吗?
答案 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}