oneflow.nn.ZeroPad2d

class oneflow.nn.ZeroPad2d(padding)

Pads the input tensor boundaries with zero. User can set the amount of padding by setting the parameter paddings.

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

Parameters

padding (Union[int, tuple]) – the size of the padding. If is int, uses the same padding in all boundaries. If a 4-tuple, uses (\(\mathrm{padding_{left}}\), \(\mathrm{padding_{right}}\), \(\mathrm{padding_{top}}\), \(\mathrm{padding_{bottom}}\))

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

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

    \(H_{out} = H_{in} + \mathrm{padding_{top}} + \mathrm{padding_{bottom}}\)

    \(W_{out} = W_{in} + \mathrm{padding_{left}} + \mathrm{padding_{right}}\)

For example:

>>> import oneflow as flow
>>> import numpy as np
>>> m1 = flow.nn.ZeroPad2d(2)
>>> m2 = flow.nn.ZeroPad2d((1,2,2,0))
>>> input = flow.tensor(np.arange(18).reshape((1, 2, 3, 3)).astype(np.float32))
>>> output = m1(input)
>>> output.shape
oneflow.Size([1, 2, 7, 7])
>>> output
tensor([[[[ 0.,  0.,  0.,  0.,  0.,  0.,  0.],
          [ 0.,  0.,  0.,  0.,  0.,  0.,  0.],
          [ 0.,  0.,  0.,  1.,  2.,  0.,  0.],
          [ 0.,  0.,  3.,  4.,  5.,  0.,  0.],
          [ 0.,  0.,  6.,  7.,  8.,  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.,  0.,  0.,  0.,  0.],
          [ 0.,  0.,  9., 10., 11.,  0.,  0.],
          [ 0.,  0., 12., 13., 14.,  0.,  0.],
          [ 0.,  0., 15., 16., 17.,  0.,  0.],
          [ 0.,  0.,  0.,  0.,  0.,  0.,  0.],
          [ 0.,  0.,  0.,  0.,  0.,  0.,  0.]]]], dtype=oneflow.float32)
>>> output = m2(input)
>>> output
tensor([[[[ 0.,  0.,  0.,  0.,  0.,  0.],
          [ 0.,  0.,  0.,  0.,  0.,  0.],
          [ 0.,  0.,  1.,  2.,  0.,  0.],
          [ 0.,  3.,  4.,  5.,  0.,  0.],
          [ 0.,  6.,  7.,  8.,  0.,  0.]],

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