2017-11-21 2 views
0

Wie in der Dokumentation angegeben "Wenn nInputDim angegeben wird, werden Eingaben, die größer als dieser Wert sind, als Stapel betrachtet, bei denen das tatsächliche zu füllende Dim die Dimension dim + 1 ist." Mein Verständnis ist die Eingaben Dimension größer als die bereitgestellten nInputDim, die Dimension Dim wird Dim + 1, aber warum ist es?In Torch, Modul = nn.Padding (Dim, Pad, nInputDim, Wert, Index), Was macht die nInputDim?

+1

Woher hast du 'nn.Padding'? Kannst du uns zur offiziellen Dokumentation führen? –

Antwort

0

Übrigens, ich denke, das Dokument, das Sie erwähnten, sollte this link sein.

Angenommen, Sie 3 default Nullen am Ende von 1 (ersten) dim, machen wollen, so dass Sie ein Polstermodul wie unten machen:

require 'nn'; 
dim = 1 
pad = 3 
module = nn.Padding(dim, pad) 
given_tensor = torch.ones(4, 2) 
print(given_tensor) 
res_tensor = module:forward(given_tensor) 
print(res_tensor) 

Wenn Sie diese Zeilen in Fackel-Interpreter ausführen, Sie erhalten ein Ergebnis wie unten, Sie fügen 3 Paddings bei 1 (erste) Dim erfolgreich hinzu, wenn Sie 4x2 Tensor zu 7x2 Tensor transformieren.

1 1 
1 1 
1 1 
1 1 
[torch.DoubleTensor of size 4x2] 

1 1 
1 1 
1 1 
1 1 
0 0 
0 0 
0 0 
[torch.DoubleTensor of size 7x2] 

Was passiert, wenn man nInputDim-1 wie unten angeben?

require 'nn'; 
dim = 1 
pad = 3 
nInputDim = 1 
module = nn.Padding(dim, pad, nInputDim) 
given_tensor = torch.ones(4, 2) 
print(given_tensor) 
res_tensor = module:forward(given_tensor) 
print(res_tensor) 

, wenn Sie sie ausführen, werden Sie wie bekommen führen unter

1 1 
1 1 
1 1 
1 1 
[torch.DoubleTensor of size 4x2] 


1 1 0 0 0 
1 1 0 0 0 
1 1 0 0 0 
1 1 0 0 0 
[torch.DoubleTensor of size 4x5] 

Sie nInputDim wollen 1 sein, aber Ihre Eingabe Dim 2, Es wird erste Dimension nehmen, 4, als Batch Größe und machen 3 Padding zu jedem Artikel in der Charge, es macht 4 Größe von 2 Tensoren zu 4 Größe von 5 Tensoren. Es funktioniert so, als ob Sie 3 Padding auf 2 (dim = dim + 1, second) dim von Tensor 4x2 machen, was das gleiche Ergebnis, 4x5, ergibt.