我需要将损失函数应用于网络中的中间层(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})
但是,我不知道如何访问第二层的结果并应用损失函数(标准)并以一种巧妙的方式对其进行反向支持。任何人都可以给我一些帮助吗?
答案 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})