Eye#
Versioned name: Eye-9
Category: Generation
Short description: Eye operation generates shift matrix or a batch of matrices.
Detailed description:
Eye operation generates an identity matrix or a batch matrices with ones on the diagonal and zeros everywhere else. The index of the diagonal to be populated with ones is given by diagonal_index: output[..., i, i + diagonal_index] = 1.
Example 1. Eye output with output_type = i32:
num_rows = 3
num_columns = 4
diagonal_index = 2
output  = [[0 0 1 0]
           [0 0 0 1]
           [0 0 0 0]]
Example 2. Eye output with output_type = i32:
num_rows = 3
num_columns = 4
diagonal_index = -1
output  = [[0 0 0 0]
           [1 0 0 0]
           [0 1 0 0]]
Example 3. Eye output with output_type = f16:
num_rows = 2
diagonal_index = 5
batch_shape = [1, 2]
output  = [[[[0. 0.]
             [0. 0.]]
            [[0. 0.]
             [0. 0.]]]]
Attributes:
- output_type - Description: the type of the output 
- Range of values: any numeric type 
- Type: - string
- Required: Yes 
 
Inputs:
- 1: - num_rows- scalar or 1D tensor with 1 non-negative element of type T_NUM describing the number of rows in matrix. Required.
- 2: - num_columns- scalar or 1D tensor with 1 non-negative element of type T_NUM describing the number of columns in matrix. Required.
- 3: - diagonal_index- scalar or 1D tensor with element of type T_NUM describing the index of the diagonal to be populated. A positive value refers to an upper diagonal and a negative value refers to a lower diagonal. Value- 0populates the main diagonal. If- diagonal_indexis a positive value and is not smaller than- num_rowsor if- diagonal_indexis a negative value and is not larger than- num_columns, the matrix will be filled with only zeros. Required.
- 4: - batch_shape- 1D tensor with non-negative values of type T_NUM defines leading batch dimensions of output shape. If- batch_shapeis an empty list, Eye operation generates a 2D tensor (matrix). This input is optional, and its default value equal to an empty tensor.
Outputs:
- 1: A tensor with the type specified by the output_type attribute. The shape is - batch_shape + [num_rows, num_columns]
Types
- T_NUM: - int32or- int64.
Examples
Example 1
<layer ... name="Eye" type="Eye">
    <data output_type="i8"/>
    <input>
        <port id="0" precision="I32"/>  <!-- num rows: 5 -->
        <port id="1" precision="I32"/>  <!-- num columns: 5 -->
        <port id="2" precision="I32"/>  <!-- diagonal index -->
    </input>
    <output>
        <port id="3" precision="I8" names="Eye:0">
            <dim>5</dim>
            <dim>5</dim>
        </port>
    </output>
</layer>
Example 2
<layer ... name="Eye" type="Eye">
    <data output_type="f32"/>
    <input>
        <port id="0" precision="I32"/>  <!-- num rows -->
        <port id="1" precision="I32"/>  <!-- num columns -->
        <port id="2" precision="I32"/>  <!-- diagonal index -->
        <port id="3" precision="I32"/>  <!-- batch_shape : [2, 3] -->
    </input>
    <output>
        <port id="3" precision="F32" names="Eye:0">
            <dim>2</dim>
            <dim>3</dim>
            <dim>-1</dim>
            <dim>-1</dim>
        </port>
    </output>
</layer>