F.pad()
원하는대로 패딩을 줄 수 있는 함수이다.
input
: 패딩할 텐서pad
: 패딩할 위치mode
: 패딩 방법value
: 패딩할 값
1
2
# 사용법
torch.nn.funcional.pad(input, pad, mode="constant", value=0.0)
- pad 부분에서
(좌, 우, 상, 하)
로 패ㅇ을 한다는 걸 알 수 있다. - 패딩 방식에는
reflect
,constant
등 여러가지 방식이 존재한다.
1
2
import torch
import torch.nn.functional as F
1
2
3
4
a = torch.ones(2, 3)
print(a)
print(a.shape)
1
2
3
tensor([[1., 1., 1.],
[1., 1., 1.]])
torch.Size([2, 3])
1
2
3
4
b = F.pad(input=a, pad=(1, 2, 3, 4), mode="constant", value=0)
print(b)
print(b.shape)
1
2
3
4
5
6
7
8
9
10
11
# 결과
tensor([[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 1., 1., 1., 0., 0.],
[0., 1., 1., 1., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]])
torch.Size([9, 6])