如何使用nngraph访问中间层的输出?

我需要在一个网络中对一个中间层(L2)的表示应用损失函数,这个网络在L2层之后还有很多层。我知道如何在nngraph中获取网络的输出,如下所示:

input = nn.Identity()()net = nn.Sequential()net:add(nn.Linear(100, 20)):add(nn.ReLU(true)) -- L1net:add(nn.Linear(20, 10)):add(ReLU(true)) -- L2net:add(nn.Linear(10, 2)) -- L3output = net(input)gmod = nn.gModule({input}, {output})

然而,我不知道如何以一种简洁的方式访问第二层的输出,并对其应用损失函数(准则)并进行反向传播。谁能帮我解决这个问题?


回答:

你应该将你的层指定为一个单独的输出,这样你就可以在任何时候访问它

input = nn.Identity()()L1 = nn.ReLU(true)(nn.Linear(100, 20)(input))L2 = nn.ReLU(true)(nn.Linear(20, 10)(L1))L3 = nn.Linear(10, 2)(L2)gmod = nn.gModule({input}, {L3, L2})

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注