mindspore.nn.ReplicationPad2d

class mindspore.nn.ReplicationPad2d(padding)[source]

Pad on HW dimension of input x according to padding.

Parameters

padding (union[int, tuple]) –

The padding size to pad the last two dimension of x .

  • If padding is an integer, all directions will be padded with the same size.

  • If padding is a tuple, uses \((pad_{left}, pad_{right}, pad_{up}, pad_{down})\) to pad.

Inputs:
  • x (Tensor) - 3D or 4D, shape: \((C, H_{in}, W_{in})\) or \((N, C, H_{in}, W_{in})\).

Outputs:

Tensor, after padding. Shape: \((C, H_{out}, W_{out})\) or \((N, C, H_{out}, W_{out})\), where \(H_{out} = H_{in} + pad_{up} + pad_{down}\), \(W_{out} = W_{in} + pad_{left} + pad_{right}\).

Raises
  • TypeError – If padding is neither a tuple nor an int.

  • TypeError – If there is an element in padding that is not int.

  • ValueError – If padding is tuple and the length of padding is not divisible by 2.

  • ValueError – If padding is tuple and there is a dimension mismatch between the padding and the tensor.

Supported Platforms:

GPU

Examples

>>> import numpy as np
>>> import mindspore
>>> from mindspore import Tensor
>>> from mindspore.nn import ReplicationPad2d
>>> pad2d = ReplicationPad2d(2)
>>> input = Tensor(np.arange(0, 9).reshape(1, 1, 3, 3), mindspore.float32)
>>> print(input)
[[[[0. 1. 2.]
   [3. 4. 5.]
   [6. 7. 8.]]]]
>>> out = pad2d(input)
>>> print(out)
[[[[0. 0. 0. 1. 2. 2. 2.]
   [0. 0. 0. 1. 2. 2. 2.]
   [0. 0. 0. 1. 2. 2. 2.]
   [3. 3. 3. 4. 5. 5. 5.]
   [6. 6. 6. 7. 8. 8. 8.]
   [6. 6. 6. 7. 8. 8. 8.]
   [6. 6. 6. 7. 8. 8. 8.]]]]
>>> pad2d = ReplicationPad2d((1, 1, 2, 0))
>>> out = pad2d(input)
>>> print(out)
[[[[0. 0. 1. 2. 2.]
   [0. 0. 1. 2. 2.]
   [0. 0. 1. 2. 2.]
   [3. 3. 4. 5. 5.]
   [6. 6. 7. 8. 8.]]]]