mindspore.nn.ReflectionPad1d

class mindspore.nn.ReflectionPad1d(padding)[源代码]

根据 padding 对输入 x 进行填充。

参数:
  • padding (union[int, tuple]) - 填充大小,如果输入为int,则对所有边界进行相同大小的填充;如果是tuple,则为 \((pad\_left, pad\_right)\)

输入:
  • x (Tensor) - 输入Tensor, 2D或3D。shape为 \((C, W_{in})\)\((N, C, W_{in})\)

输出:

Tensor,填充后的Tensor, shape为 \((C, W_{out})\)\((N, C, W_{out})\) 。其中 \(W_{out} = W_{in} + pad\_left + pad\_right\)

异常:
  • TypeError - padding 不是tuple或int。

  • TypeError - padding 中存在不是int的元素。

  • ValueError - padding 是tuple,且长度不能被2整除。

  • ValueError - padding 是tuple,且存在负数。

  • ValueError - padding 是tuple,且长度和tensor的维度不匹配。

支持平台:

Ascend GPU CPU

样例:

>>> import numpy as np
>>> from mindspore import Tensor
>>> from mindspore.nn import ReflectionPad1d
>>> x = Tensor(np.array([[[0, 1, 2, 3], [4, 5, 6, 7]]]).astype(np.float32))
>>> # x has shape (1, 2, 4)
>>> padding = (3, 1)
>>> # The first and the second dimension of x remain the same.
>>> # The third dimension of x: W_out = W_in + pad_left + pad_right = 4 + 3 + 1 = 8
>>> pad1d = ReflectionPad1d(padding)
>>> out = pad1d(x)
>>> # The shape of out is (1, 2, 8)
>>> print(out)
[[[3. 2. 1. 0. 1. 2. 3. 2.]
  [7. 6. 5. 4. 5. 6. 7. 6.]]]