<p>我想在我的程序中打印一个张量,一旦它被计算出来,就可以看到它的内部值。然而,问题是张量是在函数内部声明的。为了更好地理解我的问题,下面是一些示例代码,以更好地解释我要做的事情:</p>
<pre><code>a = tf.Variable([[2,3,4], [5,6,7]])
b = tf.Variable([[1,2,2], [3,3,3]])
def divide(a,b):
with tf.variable_scope('tfdiv', reuse=True):
c = tf.divide(a,b, name='c')
# Cannot print(c) here, as this will only yield tf info on c
return c
d = divide(a,b)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
sess.run(d)
sess.run(tf.get_variable('tfdiv/c:0').eval(session=sess))
</code></pre>
<p>以前,我已经能够执行print(c.eval(session=sess)),但由于c现在是函数内部的局部变量,所以这行不通。从上面的代码中可以看出,我尝试使用tensorflow的变量范围来访问变量,然后对其求值。很遗憾,这会导致错误消息:</p>
^{pr2}$
<p>我试图使用reuse=True标志,但是仍然得到相同的错误。我有什么办法解决这个问题吗?最好是有一个print(c)等价物可以放入divide函数中,正如上面的代码所写的那样。在</p>