我已经用千层面/nolearn训练了一个自动编码器。假设网络层为500、100、100、500。我已经像这样训练了神经网络:
net.fit(X, X)我想做一些类似以下的事情:
net.predict(X, layer=2)因此,我将获得数据的隐含表示。因此,如果我的初始数据的形状是10000,500,那么结果数据将是10000,100。
我找过了,但找不到该怎么做。可以配千层面/nolearn吗?
发布于 2015-12-23 03:44:40
看起来答案就在文档中:http://lasagne.readthedocs.org/en/latest/user/layers.html#propagating-data-through-layers
以下是相关部分:
要计算网络的输出,则应对其调用
lasagne.layers.get_output()。这将遍历网络图。
可以使用要计算输出表达式for:
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,x
假设net的类型为nolearn.lasagne.NeuralNet,看起来您可以使用net.get_all_layers()访问底层对象。我在文档中没有看到它,但它是592行的here。
发布于 2016-08-28 10:39:55
如果您已经命名了您的层,请尝试net.get_output(net.layers_[1], X)或net.get_output('name_of_layer_2' , X),而不是net.predict(X, layer=2)。
https://stackoverflow.com/questions/33832740
复制相似问题