pad2d

  • paddle.fluid.layers.pad2d(input, paddings=[0, 0, 0, 0], mode='constant', pad_value=0.0, data_format='NCHW', name=None)[源代码]

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

  • 参数:
    • input (Variable) - 类型为float32的4-D Tensor, format为 [N, C, H, W] 或 [N, H, W, C] 。
    • paddings (Variable | List[int32]) - 填充大小。如果paddings是一个List,它必须包含四个整数 [padding_top, padding_bottom, padding_left, padding_right] 。 如果paddings是Variable, 则是类型为int32 的1-D Tensor,shape是 [4] 。默认值为 [0,0,0,0] 。
    • mode (str) - padding的三种模式,分别为 'constant' (默认)、 'reflect' 、 'edge' 。 'constant' 为填充常数 pad_value , 'reflect' 为填充以input边界值为轴的映射, 'edge' 为填充input边界值。具体结果可见以下示例。默认值为 'constant' 。
    • pad_value (float32) - 以 'constant' 模式填充区域时填充的值。默认值为0.0。
    • data_format (str) - 指定input的format,可为 'NCHW' 和 'NHWC' ,默认值为 'NCHW' 。
    • name (str, 可选) - 该参数供开发人员打印调试信息时使用,具体用法请参见 Name ,缺省值为None。

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

返回类型:Variable

示例:

  1. 假设X是输入图像:
  2.  
  3. X = [[1, 2, 3],
  4. [4, 5, 6]]
  5.  
  6. Case 0:
  7. paddings = [0, 1, 2, 3],
  8. mode = 'constant'
  9. pad_value = 0
  10. Out = [[0, 0, 1, 2, 3, 0, 0, 0]
  11. [0, 0, 4, 5, 6, 0, 0, 0]
  12. [0, 0, 0, 0, 0, 0, 0, 0]]
  13.  
  14. Case 1:
  15. paddings = [0, 1, 2, 1],
  16. mode = 'reflect'
  17. Out = [[3, 2, 1, 2, 3, 2]
  18. [6, 5, 4, 5, 6, 5]
  19. [3, 2, 1, 2, 3, 2]]
  20.  
  21. Case 2:
  22. paddings = [0, 1, 2, 1],
  23. mode = 'edge'
  24. Out = [[1, 1, 1, 2, 3, 3]
  25. [4, 4, 4, 5, 6, 6]
  26. [4, 4, 4, 5, 6, 6]]

代码示例:

  1. import paddle.fluid as fluid
  2. data = fluid.layers.data(name='data', shape=[3, 32, 32], dtype='float32')
  3. result = fluid.layers.pad2d(input=data, paddings=[1,2,3,4], mode='reflect')