擅长:python、mysql、java
<p><code>tf.trainable_variables()</code>打印出图形中所有可训练的变量,在您的情况下,这些变量只有x。当您执行<code>y = 2 * x</code>时,这实际上是隐式定义了一个常量<code>mul/x</code>,并将原始变量作为<code>Variable/read</code></p>
<p>如果运行以下代码:</p>
<pre class="lang-py prettyprint-override"><code>x = tf.Variable(1)
y = 2 * x
z = y + 1
for v in tf.get_default_graph().as_graph_def().node:
print v.name
</code></pre>
<p>您将得到以下输出:</p>
<pre><code>Variable/initial_value
Variable
Variable/Assign
Variable/read
mul/x
mul
add/y
add
</code></pre>
<p>这些是图表中的所有节点。你可以用这个过滤掉所有你需要的相关信息。具体到你的情况,我不会调用<code>y</code>和<code>z</code>变量。</p>
<p>注意,这是从一个图而不是一个会话中获取所有信息。如果您想从一个特定的会话中获取它,您需要获取相关的会话并调用<code>sess.graph</code>。</p>
<p>最后注意,上面的示例使用了<code>v.name</code>,但是每个图节点实际上有更多的属性,例如<code>name</code>、<code>op</code>、<code>input</code>、<code>device</code>、<code>attr</code>。有关详细信息,请参阅<a href="https://www.tensorflow.org/extend/tool_developers/" rel="nofollow noreferrer">API</a>。</p>