Lasagne/nolean自动编码器-如何获得隐藏层输出



我已经使用千层面/nolean训练了一个自动编码器。假设网络层是[5001000500]。我这样训练神经网络:

net.fit(X, X)

我想做以下事情:

net.predict(X, layer=2)

所以我会得到数据的抑制表示。因此,如果我的初始数据有一个形状[100000],那么得到的数据将是[10000100]。

我搜索了一下,但找不到怎么做。千层面/意大利面有可能吗?

文档中似乎有答案:http://lasagne.readthedocs.org/en/latest/user/layers.html#propagating-数据通过层

以下是相关部分:

要计算网络的输出,您应该调用lasagne.layers.get_output()。这将遍历网络图表

您可以使用要计算的输出表达式

>>> y = lasagne.layers.get_output(l_out)

在这种情况下,将返回一个Theano表达式,该表达式表示与网络中的lasagne.layers.InputLayer实例

您还可以指定一个Theano表达式作为lasagne.layers.get_output():的第二个参数作为输入

>>> x = T.matrix('x')
>>> y = lasagne.layers.get_output(l_out, x)
>>> f = theano.function([x], y)

假设net的类型为nolearn.lasagne.NeuralNet,那么您似乎可以使用net.get_all_layers()访问底层对象。我没有在文档中看到它,但它在592行。

如果已命名层,请尝试net.get_output(net.layers_[1], X)net.get_output('name_of_layer_2' , X),而不是net.predict(X, layer=2)

相关内容

  • 没有找到相关文章

最新更新