mindspore.nn.ConstantPad1d
- class mindspore.nn.ConstantPad1d(padding, value)[源代码]
将给定的常量填充到多维输入数据的最后一维。
参数:
padding (Union[int, tuple]) - 指定填充的大小。如果 padding 的类型为int,则在输入最后一维的前后均填充 padding 大小,如果padding的类型为tuple,形如(padding_0, padding_1),那么输入 x 对应输出的最后一维的shape为 \(padding\_0 + x.shape[-1] + padding\_1\) ,输出的其余维度与输入保持一致。
value (Union[int, float]) - 填充值。
返回:
Tensor,填充后的Tensor。
异常:
TypeError - padding 既不是tuple或者int。
TypeError - value 既不是int,也不是float。
ValueError - tuple类型的 padding 长度不等于2。
ValueError - 填充后输出的维度不是正数。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import numpy as np >>> from mindspore import Tensor >>> from mindspore.nn import ConstantPad1d >>> x = np.ones(shape=(1, 2, 3, 4)).astype(np.float32) >>> x = Tensor(x) >>> # padding is tuple >>> padding = (0, 1) >>> value = 0.5 >>> pad1d = 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 = 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 = 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)