功能

时间:2017-01-12 14:48:42

标签: python tensorflow

我在文件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()或其他调试方法来解决这个问题?谢谢!

1 个答案:

答案 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)