2017-11-21 3 views
0

「nInputDimが提供されている場合、その値よりも大きな入力はバッチと見なされ、実際に埋め込まれるdimは次元dim + 1になります。 私の理解は、提供されたnInputDimより大きい入力次元です。次元dimはdim + 1になりますが、それはなぜですか?Torch、module = nn.Padding(dim、pad、nInputDim、value、index)、nInputDimの機能は何ですか?

+1

'nn.Padding'はどこでしたか?あなたは私たちを公式文書に導くことができますか? –

答えて

0

ところで、あなたが言及した医師はthis linkである必要があります。

は、あなたが、あなたは以下のようなパディングモジュールになりますので、(最初の)1の端薄暗いで3デフォルトゼロパディングを作りたいとしましょう:あなたはトーチインタプリタでこれらの行を実行する場合

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) 

、以下のような結果が得られたら、4x2のテンソルを7x2のテンソルに変換するときに、1(最初)の桁に3つの詰め物を追加します。あなたはnInputDim以下のように1に指定した場合

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] 

は何が起こりますか?

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) 

あなたがそれらを実行する場合

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] 

の下にあなたがnInputDimは1になりたいように、あなたは結果を取得しますが、あなたの入力点心が2である、それはバッチとして、最初のディメンション、4がかかりますバッチ内のすべての項目に3つのパディングを作成すると、2テンソルの4サイズから5テンソルの4サイズになります。これは、3のパディングをテンソル4x2の2(dim = dim + 1、second)のディミングにするかのように機能し、4x5と同じ結果を出力します。

関連する問題