* Clarify Reshape_1 operator documentation * Fix style issue * Fix reshape documentation after review
4.3 KiB
Reshape
Versioned name: Reshape-1
Category: Shape manipulation
Short description: Reshape operation changes dimensions of the input tensor according to the specified order. Input tensor volume is equal to output tensor volume, where volume is the product of dimensions.
Detailed description:
Reshape layer takes two input tensors: the tensor to be resized and the output tensor shape. The values in the second tensor could be -1, 0 and any positive integer number. The two special values -1 and 0:
0means "copy the respective dimension (left aligned) of the input tensor" ifspecial_zerois set totrue; otherwise it is a normal dimension and is applicable to empty tensors.-1means that this dimension is calculated to keep the overall elements count the same as in the input tensor. Not more than one-1can be used in a reshape operation.
If special_zero is set to true index of 0 cannot be larger than the rank of the input tensor.
Attributes:
-
special_zero
- Description: special_zero controls how zero values in
shapeare interpreted. If special_zero isfalse, then 0 is interpreted as-is which means that output shape will contain a zero dimension at the specified location. Input and output tensors are empty in this case. If special_zero istrue, then all zeros inshapeimplies the copying of corresponding dimensions fromdata.shapeinto the output shape (left aligned). - Range of values:
falseortrue - Type: boolean
- Default value: None
- Required: yes
- Description: special_zero controls how zero values in
Inputs:
-
1:
data-- multidimensional input tensor of type T. Required. -
2:
shape-- 1D tensor of type T_SHAPE describing output shape. Required.
Outputs:
- 1: Output tensor with the same content as a tensor at input
databut with shape defined by inputshape.
Types
-
T: supported type.
-
T_SHAPE: supported integer type.
Examples
<layer ... type="Reshape" ...>
<data special_zero="false"/>
<input>
<port id="0">
<dim>2</dim>
<dim>5</dim>
<dim>5</dim>
<dim>0</dim>
</port>
<port id="1">
<dim>2</dim> <!--The tensor contains 2 elements: 0, 4 -->
</port>
</input>
<output>
<port id="2">
<dim>0</dim>
<dim>4</dim>
</port>
</output>
</layer>
<layer ... type="Reshape" ...>
<data special_zero="true"/>
<input>
<port id="0">
<dim>2</dim>
<dim>5</dim>
<dim>5</dim>
<dim>24</dim>
</port>
<port id="1">
<dim>3</dim> <!--The tensor contains 3 elements: 0, -1, 4 -->
</port>
</input>
<output>
<port id="2">
<dim>2</dim>
<dim>150</dim>
<dim>4</dim>
</port>
</output>
</layer>
<layer ... type="Reshape" ...>
<data special_zero="true"/>
<input>
<port id="0">
<dim>2</dim>
<dim>2</dim>
<dim>3</dim>
</port>
<port id="1">
<dim>4</dim> <!--The tensor contains 4 elements: 0, 0, 1, -1 -->
</port>
</input>
<output>
<port id="2">
<dim>2</dim>
<dim>2</dim>
<dim>1</dim>
<dim>3</dim>
</port>
</output>
</layer>
<layer ... type="Reshape" ...>
<data special_zero="true"/>
<input>
<port id="0">
<dim>3</dim>
<dim>1</dim>
<dim>1</dim>
</port>
<port id="1">
<dim>2</dim> <!--The tensor contains 2 elements: -1, 0 -->
</port>
</input>
<output>
<port id="2">
<dim>3</dim>
<dim>1</dim>
</port>
</output>
</layer>
<layer ... type="Reshape" ...>
<data special_zero="true"/>
<input>
<port id="0">
<dim>3</dim>
<dim>1</dim>
<dim>1</dim>
</port>
<port id="1">
<dim>2</dim> <!--The tensor contains 2 elements: 0, -1 -->
</port>
</input>
<output>
<port id="2">
<dim>3</dim>
<dim>1</dim>
</port>
</output>
</layer>