Category: Data movement operations
Short description: Pad operation extends an input tensor on edges. The amount and value of padded elements are defined by inputs and attributes.
Attributes
constant
- padded values are equal to the value of the pad_value operation attribute.edge
- padded values are copied from the respective edge of the input data
tensor.reflect
- padded values are a reflection of the input data
tensor; values on the edges are not duplicated. pads_begin[D]
and pads_end[D]
must be not greater than data.shape[D] – 1
for any valid D
.symmetric
- padded values are symmetrically added from the input data
tensor. This method is similar to the reflect
, but values on edges are duplicated. Refer to the examples below for more details. pads_begin[D]
and pads_end[D]
must be not greater than data.shape[D]
for any valid D
.Inputs
data
- input tensor to be padded. Required.pads_begin
- specifies the number of padding elements at the beginning of each axis. A list of non-negative integers. The length of the list must be equal to the number of dimensions in the input tensor. Required.pads_end
- specifies the number of padding elements at the beginning of each axis. A list of non-negative integers. The length of the list must be equal to the number of dimensions in the input tensor. Required.pad_value
- scalar tensor of type matching type of elements in data
tensor to be replicated in padded area. Used with the pad_mode = "constant"
only. All new elements are populated with this value. Optional for pad_mode = "constant"
. If not provided, 0 of appropriate type is used. Shouldn't be set for other pad_mode
values.Outputs
pads_begin[D] + data.shape[D] + pads_end[D]
for each D
from 0
to len(data.shape) - 1
.Detailed Description
The attributes specify a number of elements to add along each axis and a rule by which new element values are generated: for example, whether they are filled with a given constant or generated based on the input tensor content.
The following examples illustrate how output tensor is generated for the Pad layer for a given input tensor:
with the following attributes:
depending on the pad_mode.
pad_mode = "constant"
: pad_mode = "edge"
: pad_mode = "reflect"
: pad_mode = "symmetric"
: Example