mindspore.nn.ConstantPad1d

View Source On Gitee
class mindspore.nn.ConstantPad1d(padding, value)[source]

Using a given constant value to pads the last dimensions of input tensor.

Parameters
  • padding (Union[int, tuple]) – The padding size to pad the last dimension of input tensor. If is int, uses the same padding in both boundaries of input’s last dimension. If a 2-tuple, uses (padding_0, padding_1) to pad. If the input is x, the size of last dimension of output is \(padding\_0 + x.shape[-1] + padding\_1\). The remaining dimensions of the output are consistent with those of the input. Only support non-negative value while running in Ascend.

  • value (Union[int, float]) – Padding value.

Inputs:
  • x (Tensor) - shape is \((N, *)\), where \(*\) means, any number of additional dimensions. It is not supported that the size of dimensions is greater than 5 while running on Ascend.

Returns

Tensor, the tensor after padding.

Raises
  • TypeError – If padding is not a tuple or int.

  • TypeError – If value is not int or float.

  • ValueError – If the length of padding with tuple type is not equal to 2.

  • ValueError – If the output shape after padding is not positive.

  • ValueError – If the rank of ‘x’ is more than 5 while running in Ascend.

  • ValueError – If padding contains negative value while running in Ascend.

Supported Platforms:

Ascend GPU CPU

Examples

>>> import numpy as np
>>> import mindspore as ms
>>> x = np.ones(shape=(1, 2, 3, 4)).astype(np.float32)
>>> x = ms.Tensor(x)
>>> # padding is tuple
>>> padding = (0, 1)
>>> value = 0.5
>>> pad1d = ms.nn.ConstantPad1d(padding, value)
>>> out = pad1d(x)
>>> print(out)
[[[[1.  1.  1.  1.  0.5]
   [1.  1.  1.  1.  0.5]
   [1.  1.  1.  1.  0.5]]
  [[1.  1.  1.  1.  0.5]
   [1.  1.  1.  1.  0.5]
   [1.  1.  1.  1.  0.5]]]]
>>> print(out.shape)
(1, 2, 3, 5)
>>> # padding is int
>>> padding = 1
>>> value = 0.5
>>> pad1d = ms.nn.ConstantPad1d(padding, value)
>>> out = pad1d(x)
>>> print(out)
[[[[0.5 1.  1.  1.  1.  0.5]
   [0.5 1.  1.  1.  1.  0.5]
   [0.5 1.  1.  1.  1.  0.5]]
  [[0.5 1.  1.  1.  1.  0.5]
   [0.5 1.  1.  1.  1.  0.5]
   [0.5 1.  1.  1.  1.  0.5]]]]
>>> print(out.shape)
(1, 2, 3, 6)
>>> # padding is negative
>>> padding = (-1, 0)
>>> value = 0.5
>>> pad1d = ms.nn.ConstantPad1d(padding, value)
>>> out = pad1d(x)
>>> print(out)
[[[[1. 1. 1.]
   [1. 1. 1.]
   [1. 1. 1.]]
  [[1. 1. 1.]
   [1. 1. 1.]
   [1. 1. 1.]]]]
>>> print(out.shape)
(1, 2, 3, 3)