1 タイム ステップの GRU セル順方向伝播を計算します。
Args x: GRU セルへの入力。 h_prev: 前の GRU セルからの状態入力。 w_ru: リセットおよび更新ゲートの重み行列。 w_c: セル接続ゲートの重み行列。 b_ru: リセットおよびアップデート ゲートのバイアス ベクトル。 b_c: セル接続ゲートのバイアス ベクトル。
戻り値 r: リセットゲートの出力。 u: アップデートゲートの出力。 c: セル接続ゲートの出力。 h: GRU セルの現在の状態。
変数の表記に関する注意:
a と b の連結は a_b で表されます a と b の要素ごとの内積は ab で表されます 要素ごとの内積は \circ で表されます 行列の乗算は * で表されます
バイアスは次のように初期化されます: `b_ru` - constant_initializer(1.0) `b_c` - constant_initializer(0.0)
このカーネル演算は、次の数式を実装します。
x_h_prev = [x, h_prev]
[r_bar u_bar] = x_h_prev * w_ru + b_ru
r = sigmoid(r_bar)
u = sigmoid(u_bar)
h_prevr = h_prev \circ r
x_h_prevr = [x h_prevr]
c_bar = x_h_prevr * w_c + b_c
c = tanh(c_bar)
h = (1-u) \circ c + u \circ h_prev
パブリックメソッド
public static GRUBlockCell <T> create (スコープscope、オペランド<T> x、オペランド<T> hPrev、オペランド<T> wRu、オペランド<T> wC、オペランド<T> bRu、オペランド<T> bC)
新しい GRUBlockCell オペレーションをラップするクラスを作成するためのファクトリ メソッド。
パラメータ
範囲 | 現在のスコープ |
---|
返品
- GRUBlockCell の新しいインスタンス