GRUSequence

バージョン名: GRUSequence-5

カテゴリー: シーケンス処理

簡単な説明: GRUSequence 操作は、一連の GRU セルを表します。各セルは GRUCell 操作として実装されます。

詳細説明:

シーケンス内の単一セルは、GRUCell 操作と同じ方法で実装されます。GRUSequence は GRU セルのシーケンスを表します。シーケンスは、シーケンス次元に沿った入力データのトラバース方向を指定する direction 属性、または双方向シーケンスにするかどうかを指定する direction 属性に応じて、異なる方法で接続できます。大部分の属性は、ONNX GRU オペレーター定義の GRUCell の仕様と同期しています。

属性:

  • hidden_size

    • 説明: hidden_size は非表示状態のサイズを指定します。

    • 値の範囲: 正の整数

    • タイプ: int

    • 必須: はい

  • activations

    • 説明: アクティベーションは、ゲートのアクティベーション関数を指定します。ゲートは 2 つあるため、この属性値で 2 つのアクティベーション関数を指定します。

    • 値の範囲: relusigmoidtanh の任意の組み合わせ

    • タイプ: 文字列のリスト

    • デフォルト値 : sigmoid、tanh

    • 必須: いいえ

  • activations_alpha、activations_beta

    • 説明: activations_alpha、activations_beta 関数の属性。この属性の適用性と意味は、選択したアクティベーション関数によって異なります

    • 値の範囲: 浮動小数点数のリスト

    • タイプ: float[]

    • デフォルト値: なし

    • 必須: いいえ

  • clip

    • 説明: clip は、テンソル・クリッピングの境界値 [-C, C] を指定します。クリッピングはアクティブ化の前に実行されます。

    • 値の範囲: 正の浮動小数点数

    • タイプ: float

    • デフォルト値: infinity はクリッピングが適用されないことを意味します

    • 必須: いいえ

  • direction

    • 説明: RNN が順方向、逆方向、または双方向であるかを指定します。順方向または逆方向の場合は num_directions = 1双方向の場合は num_directions = 2 になります。この num_directions 値は、入力/出力形状の要件を指定します。

    • 値の範囲: 順方向逆方向双方向

    • タイプ: string

    • 必須: はい

  • linear_before_reset

    • 説明: linear_before_reset フラグは、ONNX ドキュメントの式で説明されている GRUCell の変更に従ってレイヤーが動作するかどうかを示します。

    • 値の範囲: true または false

    • タイプ: boolean

    • デフォルト値 : false

    • 必須: いいえ

入力:

  • 1: X - タイプ T1 [batch_size, seq_length, input_size] の 3D テンソル、入力データ。サイズ seq_length の追加軸のみが GRUCell の 1 番目の入力と異なります。必須。

  • 2: initial_hidden_state - タイプ T1 [batch_size, num_directions, hidden_size] の 3D テンソル、入力隠れ状態データ。必須。

  • 3: sequence_lengths - T2 [batch_size] タイプの 1D テンソルは、各バッチ要素の実数シーケンスの長さを指定します。この入力が負の値の場合、動作は未定義です。必須。

  • 4: W - タイプ T1 [num_directions, 3 * hidden_size, input_size] の 3D テンソル、行列乗算の重み、ゲートオーダー: zrh。必須。

  • 5: R - タイプ T1 [num_directions, 3 * hidden_size, hidden_size] の 3D テンソル、行列乗算の再帰重み、ゲートオーダー: zrh。必須。

  • 6: B - T タイプの 2D テンソル。linear_before_reset が 1 に設定されている場合、形状は [num_directions, 4 * hidden_size] - z ゲートと r ゲートのバイアス (重みと再帰重み) の合計であり、h ゲートのバイアスは個別に配置されます。それ以外は、形状は [num_directions, 3 * hidden_size]、つまりバイアス (重みと反復重み) の合計になります。必須。

出力:

  • 1: Y - T1 タイプ [batch_size, num_directions, seq_len, hidden_size] の 4D テンソル、隠匿されたすべての中間出力値の連結。

  • 2: Ho - タイプ T1 [batch_size, num_directions, hidden_size] の 3D テンソル、隠し状態の最後の出力値。

タイプ:

  • T1: サポートされている浮動小数点タイプ。

  • T2: サポートされている整数タイプ。

例:

<layer ... type="GRUSequence" ...>
    <data hidden_size="128"/>
    <input>
        <port id="0">
            <dim>1</dim>
            <dim>4</dim>
            <dim>16</dim>
        </port>
        <port id="1">
            <dim>1</dim>
            <dim>1</dim>
            <dim>128</dim>
        </port>
        <port id="2">
            <dim>1</dim>
        </port>
         <port id="3">
            <dim>1</dim>
            <dim>384</dim>
            <dim>16</dim>
        </port>
         <port id="4">
            <dim>1</dim>
            <dim>384</dim>
            <dim>128</dim>
        </port>
         <port id="5">
            <dim>1</dim>
            <dim>384</dim>
        </port>
    </input>
    <output>
        <port id="6">
            <dim>1</dim>
            <dim>1</dim>
            <dim>4</dim>
            <dim>128</dim>
        </port>
        <port id="7">
            <dim>1</dim>
            <dim>1</dim>
            <dim>128</dim>
        </port>
    </output>
</layer>