我玩了一点
import tensorflow as tf
x = tf.Variable([1.0, 2.0])
initializer = tf.global_variables_initializer()
session.run(initializer)
x
<tf.Variable 'Variable:0' shape=(2,) dtype=float32_ref>
y = 2 * x
y
<tf.Tensor 'mul:0' shape=(2,) dtype=float32>
z = y + 1
z
<tf.Tensor 'add:0' shape=(2,) dtype=float32>
v = session.run(x)
sess.run(initializer)
v = sess.run(x)
print (v)
[ 1. 2.]
v1 = sess.run(z)
print (v1)
[ 3. 5.]
v = sess.run(x)
我有3个变量x,y,z。是否可以在提示符下显示用一个命令定义的所有变量? 如果我试试乔纳斯的建议
new = tf.trainable_variables()
print (new)
[<tf.Variable 'Variable:0' shape=(2,) dtype=float32_ref>]
tf.trainable_variables()
打印出图形中所有可训练的变量,在您的情况下,这些变量只有x。当您执行y = 2 * x
时,这实际上是隐式定义了一个常量mul/x
,并将原始变量作为Variable/read
如果运行以下代码:
您将得到以下输出:
这些是图表中的所有节点。你可以用这个过滤掉所有你需要的相关信息。具体到你的情况,我不会调用
y
和z
变量。注意,这是从一个图而不是一个会话中获取所有信息。如果您想从一个特定的会话中获取它,您需要获取相关的会话并调用
sess.graph
。最后注意,上面的示例使用了
v.name
,但是每个图节点实际上有更多的属性,例如name
、op
、input
、device
、attr
。有关详细信息,请参阅API。也许我误解了这个问题,但这有什么问题?
相关问题 更多 >
编程相关推荐