我玩过一点
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
如果运行以下代码:
x = tf.Variable(1)
y = 2 * x
z = y + 1
for v in tf.get_default_graph().as_graph_def().node:
print v.name
您将得到以下输出:
Variable/initial_value
Variable
Variable/Assign
Variable/read
mul/x
mul
add/y
add
这些是图中的所有节点。您可以使用它来过滤掉您需要的所有相关信息。具体到你的情况,我不会打电话y
and z
变量。
请注意,这是从图表而不是会话中获取所有信息。如果您想从特定会话中获取它,您需要获取相关会话并调用sess.graph
.
最后一点,上面的例子使用了v.name
,但是每个图节点其实还有更多的属性,比如name
, op
, input
, device
, attr
。请参阅API https://www.tensorflow.org/extend/tool_developers/了解更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)