mindspore.ops.pad

mindspore.ops.pad(input_x, paddings)[源代码]

根据参数 paddings 对输入进行填充。

输出Tensor的shape计算公式如下:

 input_x_shape=(N1,N2,...,Nn)output_shape = (N1+paddings[0,0]+paddings[0,1],N2+paddings[1,0]+paddings[1,1],...,Nn+paddings[n1,0]+paddings[n1,1])

参数:

  • input_x (Tensor) - 输入Tensor。

  • paddings (tuple) - 填充大小,其shape为(N, 2),N是输入数据的维度,填充的元素为int类型。对于 x 的第 D 个维度,paddings[D, 0]表示输入Tensor的第 D 维度前面要扩展(如果该值大于0)或裁剪(如果该值小于0)的大小,paddings[D, 1]表示在输入Tensor的第 D 个维度后面要扩展(如果该值大于0)或裁剪(如果该值小于0)的大小。

返回:

填充后的Tensor。

异常:

  • TypeError - paddings 不是tuple。

  • TypeError - input_x 不是Tensor。

  • ValueError - paddings 的shape不是 (N,2)

  • ValueError - paddings 的大小不等于2 * len(input_x)。

  • ValueError - 计算出来的输出Tensor的shape里存在0或负数。

支持平台:

Ascend GPU CPU

样例:

>>> input_x = Tensor(np.array([[-0.1, 0.3, 3.6], [0.4, 0.5, -3.2]]), mindspore.float32)
>>> paddings = ((1, 2), (2, 1))
>>> output = ops.pad(input_x, paddings)
>>> print(output)
[[ 0.   0.   0.   0.   0.   0. ]
 [ 0.   0.  -0.1  0.3  3.6  0. ]
 [ 0.   0.   0.4  0.5 -3.2  0. ]
 [ 0.   0.   0.   0.   0.   0. ]
 [ 0.   0.   0.   0.   0.   0. ]]