Eye

バージョン名: Eye-9

カテゴリー: 生成

簡単な説明: Eye 操作により、シフト行列または行列のバッチが生成されます。

詳細な説明:

Eye 操作は、対角に 1 とそれ以外のすべてに 0 を含む単位行列またはバッチ行列を生成します。1 が設定される対角線のインデックスは、diagonal_index で与えられます: output[..., i, i + diagonal_index] = 1

例 1 output_type = i32Eye 出力:

num_rows = 3

num_columns = 4

diagonal_index = 2

output  = [[0 0 1 0]
           [0 0 0 1]
           [0 0 0 0]]

例 2 output_type = i32Eye 出力:

num_rows = 3

num_columns = 4

diagonal_index = -1

output  = [[0 0 0 0]
           [1 0 0 0]
           [0 1 0 0]]

例 3 output_type = f16Eye 出力:

num_rows = 2

diagonal_index = 5

batch_shape = [1, 2]

output  = [[[[0. 0.]
             [0. 0.]]
            [[0. 0.]
             [0. 0.]]]]

属性:

  • output_type

    • 説明: 出力のタイプ

    • 値の範囲: 任意の数値タイプ

    • タイプ: string

    • 必須: はい

入力:

  • 1: num_rows - 行列の行数を記述する T_NUM タイプの 1 つの非負要素を含むスカラーまたは 1D テンソル。必須。

  • 2: num_columns - 行列の列数を表す T_NUM タイプの 1 つの非負要素を含むスカラーまたは 1D テンソル。必須。

  • 3: diagonal_index - 設定される対角線のインデックスを記述する T_NUM タイプの要素を持つスカラーまたは 1D テンソル。正の値は上の対角線を指し、負の値は下の対角線を指します。値 0 は主対角線に設定されます。diagonal_index が正の値であり、num_rows より小さくない、または diagonal_index が負の値で、num_columns より大きくない場合、行列はゼロのみで埋められます。必須。

  • 4: batch_shape - T_NUM タイプの非負の値を持つ 1D テンソルは、出力形状の先頭のバッチ次元を定義します。batch_shape が空のリストの場合、Eye 操作により 2D テンソル (行列) が生成されます。この入力はオプションであり、デフォルト値は空のテンソルと等しくなります。

出力:

  • 1: output_type 属性で指定されたタイプのテンソル。形状は次のとおりです: batch_shape + [num_rows, num_columns]

タイプ:

  • T_NUM: int32 または int64

例:

例 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>

例 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>