首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >千层面/无学习自动编码器-如何获得隐藏层输出?

千层面/无学习自动编码器-如何获得隐藏层输出?
EN

Stack Overflow用户
提问于 2015-11-21 01:34:40
回答 2查看 1.8K关注 0票数 6

我已经用千层面/nolearn训练了一个自动编码器。假设网络层为500、100、100、500。我已经像这样训练了神经网络:

代码语言:javascript
复制
net.fit(X, X)

我想做一些类似以下的事情:

代码语言:javascript
复制
net.predict(X, layer=2)

因此,我将获得数据的隐含表示。因此,如果我的初始数据的形状是10000,500,那么结果数据将是10000,100。

我找过了,但找不到该怎么做。可以配千层面/nolearn吗?

EN

回答 2

Stack Overflow用户

发布于 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

票数 2
EN

Stack Overflow用户

发布于 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)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33832740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档