Oblicza propagację do przodu komórki GRU dla 1 kroku czasowego.
Args x: Dane wejściowe do komórki GRU. h_prev: Dane wejściowe stanu z poprzedniej komórki GRU. w_ru: Macierz wag dla bramki resetowania i aktualizacji. w_c: Macierz wag dla bramki połączenia komórkowego. b_ru: Wektor odchylenia dla bramki resetowania i aktualizacji. b_c: wektor odchylenia dla bramki połączenia komórkowego.
Zwraca r: Dane wyjściowe bramki resetowania. u: Dane wyjściowe bramki aktualizacji. c: Wyjście bramki połączenia komórkowego. h: Bieżący stan komórki GRU.
Uwaga dotycząca notacji zmiennych:
Połączenie aib jest reprezentowane przez a_b Iloczyn skalarny elementarny aib jest reprezentowany przez ab Iloczyn skalarny elementarny jest reprezentowany przez \circ Mnożenie macierzy jest reprezentowane przez *
Błędy są inicjowane za pomocą: `b_ru` - const_initializer(1.0) `b_c` - const_initializer(0.0)
Ta operacja jądra implementuje następujące równania matematyczne:
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
Metody publiczne
Wyjście <T> | C () |
statyczny <T numer rozszerzenia> GRUBlockCell <T> | |
Wyjście <T> | H () |
Wyjście <T> | R () |
Wyjście <T> | ty () |
Metody dziedziczone
Metody publiczne
public static GRUBlockCell <T> create ( Zakres zasięgu, Operand <T> x, Operand <T> hPrev, Operand <T> wRu, Operand <T> wC, Operand <T> bRu, Operand <T> bC)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację GRUBlockCell.
Parametry
zakres | aktualny zakres |
---|
Powroty
- nowa instancja GRUBlockCell