Mein Netzwerk haben N-Schichten, und ich möchte die letzte Schicht einfach letzten Ausgang als vorherigen Schichten Ausgabe wie unten multiplizieren. Angenommen, meine N-1-Schicht hat einen 3-d-Ausgang, der letzte hat einen 2-d-Ausgang. der letzte_Ausgang [1] = vorheriger_Ausgang [1] * vorheriger_Ausgang [2], letzter_Ausgang [2] = vorheriger_Ausgang [3]. Und ich möchte ein CrossEntropyCriterion auf diesem 2-d-last_output verwenden. Nun erreiche ich dies durch die N-1-Netzwerkmodell konstruieren und die letzte Ausgabe wie folgt:Fackel einfach letzten Ausgang als vorherige Ebenen Ausgang multiplizieren
local last_output = torch.ones(previous_output:size()[1], 2)
last_output[{{}, {1}}] = torch.cmul(previous_output[{{},{1}}], previous_output[{{},{2}}])
last_output[{{}, {2}}] = previous_output[{{}, {3}}]
So ist die letzte Schicht sind nicht in der modle, und wenn sie nur laufen
loss = criterion:forward(last_output, target)
Fehler auftreten . Gibt es einen Trick, um den Zweck zu erreichen?
"Fehler auftreten" ist nicht sehr hilfreich. Bitte lesen [fragen] und verbessern Sie Ihren Beitrag – Piglet