StridedSlice¶
Versioned name: StridedSlice-1
Category: Data movement
Short description: StridedSlice extracts a strided slice of a tensor.
Attributes
begin_mask
Description: begin_mask is a bit mask. begin_mask[i] equal to
1
means that the corresponding dimension of thebegin
input is ignored and the ‘real’ beginning of the tensor is used along corresponding dimension.Range of values: a list of
0
s and1
sType:
int[]
Default value: None
Required: yes
end_mask
Description: end_mask is a bit mask. If end_mask[i] is
1
, the corresponding dimension of theend
input is ignored and the real ‘end’ of the tensor is used along corresponding dimension.Range of values: a list of
0
s and1
sType:
int[]
Default value: None
Required: yes
new_axis_mask
Description: new_axis_mask is a bit mask. If new_axis_mask[i] is
1
, a length 1 dimension is inserted on thei
-th position of input tensor.Range of values: a list of
0
s and1
sType:
int[]
Default value:
[0]
Required: no
shrink_axis_mask
Description: shrink_axis_mask is a bit mask. If shrink_axis_mask[i] is
1
, the dimension on thei
-th position is deleted.Range of values: a list of
0
s and1
sType:
int[]
Default value:
[0]
Required: no
ellipsis_mask
Description: ellipsis_mask is a bit mask. It inserts missing dimensions on a position of a non-zero bit.
Range of values: a list of
0
s and1
. Only one non-zero bit is allowed.Type:
int[]
Default value:
[0]
Required: no
Inputs:
1:
data
- input tensor to be sliced of type T and arbitrary shape. Required.2:
begin
- 1D tensor of type T_IND with begin indexes for input tensor slicing. Required. Out-of-bounds values are silently clamped. Ifbegin_mask[i]
is1
, the value ofbegin[i]
is ignored and the range of the appropriate dimension starts from0
. Negative values mean indexing starts from the end. For example, ifdata=[1,2,3]
,begin[0]=-1
meansbegin[0]=3
.3:
end
- 1D tensor of type T_IND with end indexes for input tensor slicing. Required. Out-of-bounds values will be silently clamped. Ifend_mask[i]
is1
, the value ofend[i]
is ignored and the full range of the appropriate dimension is used instead. Negative values mean indexing starts from the end. For example, ifdata=[1,2,3]
,end[0]=-1
meansend[0]=3
.4:
stride
- 1D tensor of type T_IND with strides. Optional.
Types
T: any supported type.
T_IND: any supported integer type.
Example
Example of begin_mask
& end_mask
usage.
<layer ... type="StridedSlice" ...>
<data begin_mask="0,1,1" ellipsis_mask="0,0,0" end_mask="1,1,0" new_axis_mask="0,0,0" shrink_axis_mask="0,0,0"/>
<input>
<port id="0">
<dim>2</dim>
<dim>3</dim>
<dim>4</dim>
</port>
<port id="1">
<dim>2</dim> <!-- begin: [1, 0, 0] -->
</port>
<port id="2">
<dim>2</dim> <!-- end: [0, 0, 2] -->
</port>
<port id="3">
<dim>2</dim> <!-- stride: [1, 1, 1] -->
</port>
</input>
<output>
<port id="4">
<dim>1</dim>
<dim>3</dim>
<dim>2</dim>
</port>
</output>
</layer>
Example of new_axis_mask
usage.
<layer ... type="StridedSlice" ...>
<data begin_mask="0,1,1" ellipsis_mask="0,0,0" end_mask="0,1,1" new_axis_mask="1,0,0" shrink_axis_mask="0,0,0"/>
<input>
<port id="0">
<dim>2</dim>
<dim>3</dim>
<dim>4</dim>
</port>
<port id="1">
<dim>2</dim>
</port>
<port id="2">
<dim>2</dim>
</port>
<port id="3">
<dim>2</dim>
</port>
</input>
<output>
<port id="4">
<dim>1</dim>
<dim>2</dim>
<dim>3</dim>
<dim>4</dim>
</port>
</output>
</layer>
Example of shrink_axis_mask
usage.
<layer ... type="StridedSlice" ...>
<data begin_mask="1,0,1,1,1" ellipsis_mask="0,0,0,0,0" end_mask="1,0,1,1,1" new_axis_mask="0,0,0,0,0" shrink_axis_mask="0,1,0,0,0"/>
<input>
<port id="0">
<dim>1</dim>
<dim>2</dim>
<dim>384</dim>
<dim>640</dim>
<dim>8</dim>
</port>
<port id="1">
<dim>5</dim>
</port>
<port id="2">
<dim>5</dim>
</port>
<port id="3">
<dim>5</dim>
</port>
</input>
<output>
<port id="4">
<dim>1</dim>
<dim>384</dim>
<dim>640</dim>
<dim>8</dim>
</port>
</output>
</layer>