0
私は単純な畳み込みニューラルネットワークを持っています。その出力は、単一チャネルの4x4特徴マップです。訓練中、(回帰)損失は、16個の出力のうちの1つの値のみで計算する必要があります。 この値の位置は、往路通過後に決定されます。バックプロップ中に無関係なグラデーションがすべてゼロになっていることを確認しながら、この1つの出力からの損失をどのように計算すればよいですか。トーチ:出力のサブセットで計算された損失からの逆伝播
のは、私がトーチで以下のような簡単なモデルを持っているとしましょう:
require 'nn'
-- the input
local batch_sz = 2
local x = torch.Tensor(batch_sz, 3, 100, 100):uniform(-1,1)
-- the model
local net = nn.Sequential()
net:add(nn.SpatialConvolution(3, 128, 9, 9, 9, 9, 1, 1))
net:add(nn.SpatialConvolution(128, 1, 3, 3, 3, 3, 1, 1))
net:add(nn.Squeeze(1, 3))
print(net)
-- the loss (don't know how to employ it yet)
local loss = nn.SmoothL1Criterion()
-- forward'ing x through the network would result in a 2x4x4 output
y = net:forward(x)
print(y)
私はnn.SelectTableを見てきました、私が表形式に出力を変換する場合のように、私は私が欲しいものを実装することができるだろうと思われます?