pad2d

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

Pad 2-d images accordding to ‘paddings’ and ‘mode’. If mode is ‘reflect’, paddings[0] and paddings[1] must be no greater than height-1. And the width dimension has the same condition.

Parameters
  • input (Variable) – The input image with [N, C, H, W] format or [N, H, W, C] format, which is a 4-D Tensor with data type float32.

  • paddings (Variable | List[int32]) – The padding size. If padding is a List, it must contain four integers, (padding_top, padding_bottom, padding_left, padding_right). Otherwise, it is a 1-D Tensor with shape [4]. Data type is int32. Default is [0, 0, 0, 0].

  • mode (str) – Three modes: ‘constant’ (default), ‘reflect’, ‘edge’ . When in ‘constant’ mode, this op uses a constant value to pad the input tensor. When in ‘reflect’ mode, uses reflection of the input boundaries to pad the input tensor. When in ‘edge’ mode, uses input boundaries to pad the input tensor. Default is ‘constant’

  • pad_value (float32) – The value to fill the padded areas in ‘constant’ mode . Default is 0.0

  • data_format (str) – An string from: “NHWC”, “NCHW”. Specify the data format of the input data. Default is “NCHW”

  • name (str, optional) – The default value is None. Normally there is no need for user to set this property. For more information, please refer to Name .

Returns: a 4-D Tensor padded accordding to paddings and mode and data type is same as input.

Return Type: Variable

Examples

Given that X is a channel of image from input:

X = [[1, 2, 3],
     [4, 5, 6]]

Case 0:

  paddings = [0, 1, 2, 3],
  mode = 'constant'
  pad_value = 0

  Out = [[0, 0, 1, 2, 3, 0, 0, 0]
         [0, 0, 4, 5, 6, 0, 0, 0]
         [0, 0, 0, 0, 0, 0, 0, 0]]

Case 1:

  paddings = [0, 1, 2, 1],
  mode = 'reflect'

  Out = [[3, 2, 1, 2, 3, 2]
         [6, 5, 4, 5, 6, 5]
         [3, 2, 1, 2, 3, 2]]

Case 2:

  paddings = [0, 1, 2, 1],
  mode = 'edge'

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