2016-07-27 22 views
0

Ich muss eine Verlustfunktion auf eine Zwischenschicht (L2) Darstellung in einem Netzwerk anwenden, die viele Schichten nach der L2-Schicht hat. Ich weiß, wie der Zugriff auf den Ausgang eines Netzwerks in nngraph zu erhalten, wie folgt:Wie kann man mit nngraph auf die Ausgänge der Zwischenebenen zugreifen?

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

Allerdings weiß ich nicht, wie ich das Ergebnis der zweiten Schicht zugreifen kann und eine Verlustfunktion (Kriterium) gelte und Backprop auf eine saubere Art und Weise. Kann mir jemand Hilfe geben?

Antwort

1

Sie Ihre Schicht als separate Ausgabe angeben sollten, dann können Sie es zu einem bestimmten Zeitpunkt Zugriff

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