pad2d

    该OP依照 paddings 和 mode 属性对input进行2维 pad

    参数:

    • input (Tensor) - 类型为float32的4-D Tensor, 格式为 [N, C, H, W] 或 [N, H, W, C] 。

    • mode (str) - padding的三种模式,分别为 ‘constant’ (默认)、 ‘reflect’ 、 ‘edge’ 。 ‘constant’ 为填充常数 pad_value , ‘reflect’ 为填充以input边界值为轴的映射, ‘edge’ 为填充input边界值。具体结果可见以下示例。默认值为 ‘constant’ 。

    • pad_value (float32) - 以 ‘constant’ 模式填充区域时填充的值。默认值为0.0。

    • data_format (str) - 指定input的格式,可为 ‘NCHW’ 和 ‘NHWC’ ,默认值为 ‘NCHW’ 。

    返回:Tensor,对input进行2维 pad 的结果,数据类型和input一样的4-D Tensor。

    示例

    代码示例:

    1. import numpy as np
    2. import paddle
    3. import paddle.nn.functional as F
    4. x_shape = (1, 1, 3, 4)
    5. x = np.arange(np.prod(x_shape), dtype=np.float32).reshape(x_shape) + 1
    6. y = F.pad2d(tensor_x, paddings=[1, 2, 2, 1], pad_value=1, mode='constant')
    7. print(y.numpy())
    8. # [[[[ 1. 1. 1. 1. 1. 1. 1.]
    9. # [ 1. 1. 1. 2. 3. 4. 1.]
    10. # [ 1. 1. 5. 6. 7. 8. 1.]
    11. # [ 1. 1. 9. 10. 11. 12. 1.]
    12. # [ 1. 1. 1. 1. 1. 1. 1.]
    13. # example 2
    14. x_shape = (1, 1, 2, 3)
    15. x = np.arange(np.prod(x_shape), dtype=np.float32).reshape(x_shape) + 1
    16. tensor_x = paddle.to_tensor(x)
    17. y = F.pad2d(tensor_x, paddings=[1, 1, 1, 1], mode='reflect')
    18. print(y.numpy())
    19. # [[[[5. 4. 5. 6. 5.]
    20. # [2. 1. 2. 3. 2.]