oneflow.nn.ReflectionPad1d

class oneflow.nn.ReflectionPad1d(padding)

This operator pads the input tensor using the reflection of the input boundary.

The interface is consistent with PyTorch. The documentation is referenced from: https://pytorch.org/docs/1.10/generated/torch.nn.ReflectionPad1d.html.

Parameters

padding (Union[int,tuple]) – The size or bundary of padding, if is int uses the same padding in all dimension; if 4-dims tuple, uses \((\text{padding}_{\text{left}}, \text{padding}_{\text{right}}, \text{padding}_{\text{top}}, \text{padding}_{\text{bottom}} )\)

Returns

Returns a new tensor which is result of the reflection padding of the input tensor.

Return type

Tensor

Shape:
  • Input: \((C, W_{in})\) or \((N, C, W_{in})\).

  • Output: \((C, W_{out})\) or \((N, C, W_{out})\), where

    \(W_{out} = W_{in} + \text{padding_left} + \text{padding_right}\)

For example:

>>> import oneflow as flow
>>> import numpy as np
>>> input = flow.tensor(np.arange(18).reshape((2, 3, 3)).astype(np.float32))
>>> m = flow.nn.ReflectionPad1d((2, 2))
>>> out = m(input)
>>> out
tensor([[[ 2.,  1.,  0.,  1.,  2.,  1.,  0.],
         [ 5.,  4.,  3.,  4.,  5.,  4.,  3.],
         [ 8.,  7.,  6.,  7.,  8.,  7.,  6.]],

        [[11., 10.,  9., 10., 11., 10.,  9.],
         [14., 13., 12., 13., 14., 13., 12.],
         [17., 16., 15., 16., 17., 16., 15.]]], dtype=oneflow.float32)