如何在Lasagne中打印隐藏层的输出

时间:2017-07-22 09:09:50

标签: c++ neural-network theano lasagne

我正在尝试使用lasgne来训练一个简单的神经网络,并使用我自己的C ++代码进行推理。我使用lasgne生成的权重,但我无法取得好成绩。有没有办法可以打印隐藏图层的输出和/或计算本身?我想知道它是在底层工作的,所以我可以在C ++中以相同的方式实现它。

1 个答案:

答案 0 :(得分:1)

我可以帮助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方法,以避免出现非确定性行为。这适用于前面有一个或多个dropout图层的所有图层。

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