LSTMCell¶
バージョン名: LSTMCell-1
カテゴリー: シーケンス処理
簡単な説明: LSTMCell 操作は、単一の LSTM セルを表します。オリジナルの論文 Long Short-Term Memory で説明されている式を使用して出力を計算します。
詳細な説明: LSTMCell は、次の式に基づいて現在のタイムステップの出力 Ht と ot を計算します。
Formula:
* - matrix multiplication
(.) - Hadamard product (element-wise)
[,] - concatenation
f, g, h - are activation functions.
it = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Wbi + Rbi)
ft = f(Xt*(Wf^T) + Ht-1*(Rf^T) + Wbf + Rbf)
ct = g(Xt*(Wc^T) + Ht-1*(Rc^T) + Wbc + Rbc)
Ct = ft (.) Ct-1 + it (.) ct
ot = f(Xt*(Wo^T) + Ht-1*(Ro^T) + Wbo + Rbo)
Ht = ot (.) h(Ct)
属性:
-
hidden_size
説明: hidden_size は隠れ状態のサイズを指定します。
値の範囲: 正の整数
タイプ:
int
必須: はい
-
activations
説明: アクティベーションは、ゲートのアクティベーション関数を指定します。ゲートは 3 つあるため、この属性値で 3 つのアクティベーション関数を指定します。
値の範囲: relu、sigmoid、tanh の任意の組み合わせ
タイプ: 文字列のリスト
デフォルト値: f は sigmoid、g は tanh、h は tanh
必須: いいえ
-
activations_alpha、activations_beta
説明: activations_alpha, activations_beta 関数の属性。この属性の適用性と意味は、選択したアクティベーション関数によって異なります
値の範囲: 浮動小数点数のリスト
タイプ:
float[]
デフォルト値: なし
必須: いいえ
-
clip
説明: clip は、テンソル・クリッピングの境界値 [-C, C] を指定します。クリッピングはアクティブ化の前に実行されます。
値の範囲: 正の浮動小数点数
タイプ:
float
デフォルト値: infinity はクリッピングが適用されないことを意味します
必須: いいえ
入力:
1:
X
- タイプ T[batch_size, input_size]
の 2D テンソル、入力データ。必須。2:
initial_hidden_state
- タイプ T[batch_size, hidden_size]
の 2D テンソル。必須。3:
initial_cell_state
- タイプ T[batch_size, hidden_size]
の 2D テンソル。必須。4:
W
- タイプ T[4 * hidden_size, input_size]
の 2D テンソル、行列乗算の重み、ゲートオーダー: fico。必須。5:
R
- タイプ T[4 * hidden_size, hidden_size]
の 2D テンソル、行列乗算の再帰重み、ゲートオーダー: fico。必須。6:
B
タイプ T[4 * hidden_size]
の 1D テンソル、バイアス (重みと再帰重み) の合計、指定されていない場合は 0 と見なされます。オプション。
出力:
1:
Ho
- タイプ T[batch_size, hidden_size]
の 2D テンソル、隠し状態の最後の出力値。2:
Co
- タイプ T[batch_size, hidden_size]
の 2D テンソル、セル状態の最後の出力値。
タイプ:
T: サポートされている浮動小数点タイプ。
例:
<layer ... type="LSTMCell" ...>
<data hidden_size="128"/>
<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>1</dim>
<dim>128</dim>
</port>
<port id="3">
<dim>512</dim>
<dim>16</dim>
</port>
<port id="4">
<dim>512</dim>
<dim>128</dim>
</port>
<port id="5">
<dim>512</dim>
</port>
</input>
<output>
<port id="6">
<dim>1</dim>
<dim>128</dim>
</port>
<port id="7">
<dim>1</dim>
<dim>128</dim>
</port>
</output>
</layer>