mindspore.nn.ReplicationPad2d
- class mindspore.nn.ReplicationPad2d(padding)[源代码]
根据 padding 对输入 x 的HW维度上进行填充。
- 参数:
padding (union[int, tuple]) - 填充 x 最后两个维度的大小。
如果输入为int,则对所有边界进行相同大小的填充。
如果是tuple,则顺序为 \((pad_{left}, pad_{right}, pad_{up}, pad_{down})\)。
- 输入:
x (Tensor) - 维度为3D或4D的Tensor,shape为 \((C, H_{in}, W_{in})\) 或 \((N, C, H_{in}, W_{in})\) 。
- 输出:
Tensor,填充后的Tensor,shape为 \((C, H_{out}, W_{out})\) 或 \((N, C, H_{out}, W_{out})\)。 其中 \(H_{out} = H_{in} + pad_{up} + pad_{down}\), \(W_{out} = W_{in} + pad_{left} + pad_{right}\) 。
- 异常:
TypeError - padding 不是tuple或int。
TypeError - padding 中存在不是int的元素。
ValueError - padding 是tuple,且长度不能被2整除。
ValueError - padding 是tuple,且长度和Tensor的维度不匹配。
- 支持平台:
GPU
样例:
>>> 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.]]]]