我正在尝试使用lasgne训练一个简单的神经网络,并使用自己的C ++代码进行推理。我使用lasgne生成的权重,但无法获得良好的结果。有没有办法打印隐藏层的输出和/或计算本身?我想看看谁在后台运行,所以我可以在C ++中以相同的方式实现它。

最佳答案

我可以为Python中的Lasagne + Theano提供帮助,从您的问题中我不确定您是否完全在C ++中工作,还是仅需要在C ++代码中使用Python + Lasagne的结果。

让我们考虑一下您有一个像这样的简单网络:

l_in = lasagne.layers.InputLayer(...)
l_in_drop = lasagne.layers.DropoutLayer(l_in, ...)
l_hid1 = lasagne.layers.DenseLayer(l_in_drop, ...)
l_out = lasagne.layers.DenseLayer(l_hid1, ...)


您可以通过在特定层上调用get_output方法来获取每一层的输出:

lasagne.layers.get_output(l_in, deterministic=False) # this will just give you the input tensor
lasagne.layers.get_output(l_in_drop, deterministic=True)
lasagne.layers.get_output(l_hid1, deterministic=True)
lasagne.layers.get_output(l_out, deterministic=True)


当您要处理辍学并且不处于培训阶段时,记住将get_output参数设置为True的deterministic方法很重要,以避免非确定性行为。这适用于所有以一个或多个辍学层开头的层。

我希望这回答了你的问题。

关于c++ - 如何在Lasagne中打印隐藏层的输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45252752/

10-10 21:23