PyTorch - torch.nn.ReflectionPad2d[1]

torch.nn.ReflectionPad2d(
    padding: Tuple[int, int, int, int]  # Tuple[left, right, top, bottom]
)
m = torch.nn.ReflectionPad2d(2)
input = torch.arange(9, dtype=torch.float).reshape(1, 1, 3, 3)
print(input)
print(m(input))

'''
tensor([[[[0., 1., 2.],
          [3., 4., 5.],
          [6., 7., 8.]]]])
tensor([[[[8., 7., 6., 7., 8., 7., 6.],
          [5., 4., 3., 4., 5., 4., 3.],
          [2., 1., 0., 1., 2., 1., 0.],
          [5., 4., 3., 4., 5., 4., 3.],
          [8., 7., 6., 7., 8., 7., 6.],
          [5., 4., 3., 4., 5., 4., 3.],
          [2., 1., 0., 1., 2., 1., 0.]]]])
'''

explain

  • Pads the input tensor using the reflection of the input boundary.
    • 입력 데이터의 반전 값을 padding으로 추가

Reference

1. REFLECTIONPAD2D, PyTorch, https://pytorch.org/docs/stable/generated/torch.nn.ReflectionPad2d.html#torch.nn.ReflectionPad2d