我的网络有N层,我希望最后一层简单地构造最后一个输出,因为前面的层的输出乘法如下。假设我的N-1层有一个3-d输出,最后一个有一个2-d输出。 last_output [1] = previous_output [1] * previous_output [2],last_output [2] = previous_output [3]。我想在这个2-d last_output上使用CrossEntropyCriterion。现在我通过构建N-1网络模型并获得最后一个输出来实现这一点:
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}}]
所以最后一层不在模型中,只需运行
loss = criterion:forward(last_output, target)
发生错误。 有没有诀窍达到目的?