如何在计算theano变量时打印它的值?

2024-05-16 20:48:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用宽面条和theano构建一个卷积神经网络,我在尝试遵循http://deeplearning.net/software/theano/tutorial/debug_faq.html#how-do-i-step-through-a-compiled-function中的打印调试示例时遇到了一些问题

我的函数是这样的,G和Y是no张量

def loss_function(self, G, Y_):
    # Split batch into pairs
    G1, G2 = G[0::2], G[1::2]
    Y = Y_[:G.shape[0] // 2]
    # Energy of training pairs
    E = T.abs_((G1 - G2)).sum(axis=1)
    Q = 2
    genuine_loss = (1 - Y) * (2 / Q) * (E ** 2)
    imposter_loss = (Y) * 2 * Q * T.exp((-2.77 * E) / Q)
    loss = genuine_loss + imposter_loss
    avg_loss = T.mean(loss)
    return ave_loss

因此,输出平均损失应该是一个符号表达式,当使用输入数据进行编译和执行时,将计算一批训练图像的平均损失。在

我要做的是在这里放一个符号打印表达式,这样每当计算平均损失时,它就会打印G的内容

但现在我只是想前后印点东西

^{pr2}$

上面的代码不起作用,我也不知道如何操作theano.功能让它发挥作用。在

我要做的是创建一个identity函数,它接受G并返回G而不修改它,但是在这个过程中打印pre-func和post-func。在

如何使用theano.功能(或theano.printing.打印)完成这个?在


Tags: 函数功能表达式符号functiontheanoimposterfunc
1条回答
网友
1楼 · 发布于 2024-05-16 20:48:44

不幸的是,从那以后我就不能帮你用印刷方法了 我自己从来没有用过这个印刷品。但是。。不是吗 可以将G和ave_损失一起返回。 然后你可以看看里面的东西。。。在

比如:

def loss_function(self, G, Y_):
    ...
    G = dbgfunc()
    ...
    return ave_loss, G


G = T.matrix('G') 
Y_ = T.matrix('Y')

ave_loss, G_prime = loss_function(G, Y_)

f = function([G, _Y], [ave_loss, G_prime])

print( f(...) )

编辑:

我刚刚看到G的内容似乎没有变化。 你为什么要把它打印出来。因为指纹也可以防止 如果我没记错的话,我会从一些优化中得到答案。在

相关问题 更多 >