我在文件neural_network.py
中有一个定义损失函数的函数:
def loss(a, b):
...
debug = tf.Print(a, [a], message = 'debug: ')
debug.eval(session = ???)
return tf.add(a, b)
要解释一下,在这个函数的某个地方我想打印一个张量。但是,我没有在此函数中声明任何会话;我的会话在另一个名为forecaster.py
的文件中声明。因此,当我尝试将tf.Print()
放入loss()
时,我不能,因为我不知道eval
与哪个会话。有没有办法通过使用tf.Print()
或其他调试方法来解决这个问题?谢谢!
答案 0 :(得分:2)
tf.Print
用作身份函数,它返回与第一个参数相同的张量,具有打印指定为第二个参数的张量列表的副作用。
所以你应该使用如下:
def loss(a, b):
...
a = tf.Print(a, [a], message = 'debug: ')
return tf.add(a, b)
每次评估张量a
时都会打印 tf.add(a, b)
。