GRUCell¶
バージョン名: GRUCell-3
カテゴリー: シーケンス処理
簡単な説明: GRUCell は、論文で説明されている式で出力を計算する単一の GRU セルを表します。
詳細な説明: GRUCell は、次の式で現在のタイムステップの出力 Ht を計算します。
Formula:
* - matrix multiplication
(.) - Hadamard product(element-wise)
[,] - concatenation
f, g - are activation functions.
zt = f(Xt*(Wz^T) + Ht-1*(Rz^T) + Wbz + Rbz)
rt = f(Xt*(Wr^T) + Ht-1*(Rr^T) + Wbr + Rbr)
ht = g(Xt*(Wh^T) + (rt (.) Ht-1)*(Rh^T) + Rbh + Wbh) # default, when linear_before_reset = 0
ht = g(Xt*(Wh^T) + (rt (.) (Ht-1*(Rh^T) + Rbh)) + Wbh) # when linear_before_reset != 0
Ht = (1 - zt) (.) ht + zt (.) Ht-1
属性:
-
hidden_size
説明: hidden_size は隠れ状態のサイズを指定します。
値の範囲: 正の整数
タイプ:
int
必須: はい
-
activations
説明: ゲートのアクティベーション関数
値の範囲: relu、sigmoid、tanh の任意の組み合わせ
タイプ: 文字列のリスト
デフォルト値: f は sigmoid、g は tanh
必須: いいえ
-
activations_alpha、activations_beta
説明: activates_alpha、activations_beta 関数の属性
値の範囲: 浮動小数点数のリスト
タイプ:
float[]
デフォルト値: なし
必須: いいえ
-
clip
説明: clip は、アクティベーションの前にテンソル・クリッピングの値を [-C, C] に指定します。
値の範囲: 正の浮動小数点数
タイプ:
float
デフォルト値: infinity はクリッピングが適用されないことを意味します
必須: いいえ
-
linear_before_reset
説明: linear_before_reset フラグは、ONNX ドキュメントの式で説明されている GRUCell の変更に従ってレイヤーが動作するかどうかを示します。
値の範囲: true または false
タイプ:
boolean
デフォルト値 : false
必須: いいえ
入力:
1:
X
- タイプ T[batch_size, input_size]
の 2D テンソル、入力データ。必須。2:
initial_hidden_state
- タイプ T[batch_size, hidden_size]
の 2D テンソル。必須。3:
W
- タイプ T[3 * hidden_size, input_size]
の 2D テンソル、行列乗算の重み、ゲートオーダー: zrh。必須。4:
R
- タイプ T[3 * hidden_size, hidden_size]
の 2D テンソル、行列乗算の再帰重み、ゲートオーダー: zrh。必須。-
5:
B
- T タイプの 1D テンソル。linear_before_reset が 1 に設定されている場合、形状は[4 * hidden_size]
- z ゲートと r ゲートのバイアス (重みと再帰重み) の合計であり、h ゲートのバイアスは個別に配置されます。それ以外は、形状は[3 * hidden_size]
、つまりバイアス (重みと反復重み) の合計になります。オプション。
出力:
1:
Ho
- タイプ T[batch_size, hidden_size]
の 2D テンソル、隠し状態の最後の出力値。
タイプ:
T: サポートされている浮動小数点タイプ。
例:
<layer ... type="GRUCell" ...>
<data hidden_size="128" linear_before_reset="1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>16</dim>
</port>
<port id="1">
<dim>1</dim>
<dim>128</dim>
</port>
<port id="2">
<dim>384</dim>
<dim>16</dim>
</port>
<port id="3">
<dim>384</dim>
<dim>128</dim>
</port>
<port id="4">
<dim>768</dim>
</port>
</input>
<output>
<port id="5">
<dim>1</dim>
<dim>128</dim>
</port>
</output>
</layer>