문서와 같이 'nInputDim이 제공되면 그 값보다 큰 입력은 배치로 간주되며 실제 패딩 될 dim은 차원 dim + 1이됩니다.' 필자는 제공된 nInputDim보다 더 큰 입력 차원을 알고 Dim Dim는 dim + 1이되지만 왜 그런가?Torch에서 module = nn.Padding (dim, pad, nInputDim, value, index), nInputDim의 기능은 무엇입니까?
0
A
답변
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)
당신이 그들을 실행하는 경우, 당신은 당신이 일을 할 nInputDim
원하는
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]
아래와 같은 결과를 얻을 것이다, 그러나 당신의 입력 희미한 그것은 배치로, 첫 번째 차원, 4
를 취할 것입니다, 2 크기 및 배치의 모든 항목에 3 패딩을 만들면 4 개의 크기가 2 개의 텐서가되고 4 개의 크기가 5 개의 텐서가됩니다. 마치 3 패딩을 텐서 4x2의 희미한 (dim = dim + 1, second) 희미하게 만드는 것처럼 작동합니다. 그러면 동일한 결과 인 4x5가 출력됩니다.
어디에서'nn.Padding'을 얻었습니까? 공식 문서로 안내 할 수 있습니까? –