2017-11-02 2 views
0

Stellen Sie sich vor, wir haben eine DoubleTensor - size: 5x32x3000 und wir konvertieren sie in DoubleTensor - size: 5x32x100, um weiter zu füttern. Nun, was ich tun würde, ist die folgende:Wie effektiv lineare Transformation auf 3-dimensionalen Eingangsvektor in Torch anwenden?

local seq = nn.Sequential() 
seq:add(nn.SplitTable(1)) 
seq:add(nn.MapTable():add(nn.Linear(3000,100))) 
seq:add(nn.JoinTable(1)):add(nn.View(5,32,100)) 

Das sieht ein bisschen kompliziert, ich fühle mich wie es sollte ein effizienter Weg sein. Kannst du eine bessere Lösung finden?

Antwort

1

ich dies versucht haben, wird es Ausgabegröße (5, 32, 1000), wie Sie

data = torch.Tensor(5, 32, 3000) 
mul = torch.Tensor(3000, 1000) 
res = torch.mm(data:view(5*32, 3000), mul):view(5, 32, 1000) 
print(res:size()) 
0

Ein anderer Weg könnte auch sein wollte:

seq = nn.Sequential() 
seq:add(nn.SplitTable(1)):add(nn.MapTable():add(nn.Linear(3000,100))) 
seq:add(nn.JoinTable(1)) 
Verwandte Themen