Files
openvino/docs/ops/movement/StridedSlice_1.md
Patryk Elszkowski de53c40578 bulk change type T to type *T* in spec (#6486)
* bulk change `type T` to `type *T*` in spec

* update all `T` which referee to type to use *T* pattern

* get back with `T` where T is dimension

* fix *T*1 -> *T1*

* Make italic types where was no formating
2021-07-02 13:51:00 +03:00

5.1 KiB

StridedSlice

Versioned name: StridedSlice-1

Category: Data movement operation

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 the begin input is ignored and the 'real' beginning of the tensor is used along corresponding dimension.
    • Range of values: a list of 0s and 1s
    • Type: 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 the end input is ignored and the real 'end' of the tensor is used along corresponding dimension.
    • Range of values: a list of 0s and 1s
    • Type: 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 the i-th position of input tensor.
    • Range of values: a list of 0s and 1s
    • Type: 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 the i-th position is deleted.
    • Range of values: a list of 0s and 1s
    • Type: 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 0s and 1. 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. If begin_mask[i] is 1, the value of begin[i] is ignored and the range of the appropriate dimension starts from 0. Negative values mean indexing starts from the end. For example, if data=[1,2,3], begin[0]=-1 means begin[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. If end_mask[i] is 1, the value of end[i] is ignored and the full range of the appropriate dimension is used instead. Negative values mean indexing starts from the end. For example, if data=[1,2,3], end[0]=-1 means end[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>