Python 千层面/nolearn自动编码器-如何获得隐藏层输出?
我已经用千层面/nolearn培训过自动编码器。假设网络层为[500100100500]。我对神经网络进行了如下训练:Python 千层面/nolearn自动编码器-如何获得隐藏层输出?,python,neural-network,lasagne,autoencoder,nolearn,Python,Neural Network,Lasagne,Autoencoder,Nolearn,我已经用千层面/nolearn培训过自动编码器。假设网络层为[500100100500]。我对神经网络进行了如下训练: net.fit(X, X) 我想做如下事情: net.predict(X, layer=2) 因此,我将获得数据的抑制表示。因此,如果我的初始数据有一个形状[10000,500],结果数据将是[10000,100] 我搜索了一下,但找不到该怎么做。 千层面/nolearn可以吗?答案似乎在文档中: 以下是相关部分: 要计算网络的输出,您应该调用 lasagne.layer
net.fit(X, X)
我想做如下事情:
net.predict(X, layer=2)
因此,我将获得数据的抑制表示。因此,如果我的初始数据有一个形状[10000,500],结果数据将是[10000,100]
我搜索了一下,但找不到该怎么做。
千层面/nolearn可以吗?答案似乎在文档中: 以下是相关部分: 要计算网络的输出,您应该调用
lasagne.layers.get_output()
。这将穿越网络
图表
您可以使用要计算的层调用此函数
输出表达式:
>>> y = lasagne.layers.get_output(l_out)
在这种情况下,将返回表示
和输入变量相关联的输入变量的函数输出
lasagne.layers.InputLayer
网络中的一个或多个实例
您还可以指定一个Theano表达式作为lasagne.layers.get_output()
的第二个参数作为输入:
假设
net
属于nolearn.lasagne.NeuralNet
类型,您似乎可以使用net.get_all_layers()
访问底层层对象。我在文档中没有看到它,但它在第592行。而不是net.predict(X,layer=2)
,尝试net.get\u output(net.layers\u[1],X)
,或者net.get\u output('name\u of_layer\u 2',X)
,如果您已经命名了图层的话。Hi ovolve。我在千层面上用nolearn训练了网络。我想我不能使用上面的代码。代码中未使用“net”对象。我错过了什么吗?@Stergios对不起,我没意识到nolearn隐藏了图层。我已经更新了答案。注意,我还没有测试这段代码。
>>> x = T.matrix('x')
>>> y = lasagne.layers.get_output(l_out, x)
>>> f = theano.function([x], y)