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

时间:2016-07-27 14:41:28

标签: machine-learning lua neural-network torch representation

我需要将损失函数应用于网络中的中间层(L2)表示,该网络在L2层之后具有许多层。我知道如何在nngraph中访问网络输出,如下所示:

input = nn.Identity()()
net = nn.Sequential()
net:add(nn.Linear(100, 20)):add(nn.ReLU(true)) -- L1
net:add(nn.Linear(20, 10)):add(ReLU(true)) -- L2
net:add(nn.Linear(10, 2)) -- L3
output = net(input)

gmod = nn.gModule({input}, {output})

但是,我不知道如何访问第二层的结果并应用损失函数(标准)并以一种巧妙的方式对其进行反向支持。任何人都可以给我一些帮助吗?

1 个答案:

答案 0 :(得分:1)

您应该将图层指定为单独的输出,然后您可以在任何给定时间访问它

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})