GRUBlockCell

classe finale pubblica GRUBlockCell

Calcola la propagazione in avanti della cella GRU per 1 passaggio temporale.

Argomenti x: input per la cella GRU. h_prev: stato dell'input dalla cella GRU precedente. w_ru: matrice del peso per il gate di ripristino e aggiornamento. w_c: Matrice dei pesi per la porta di connessione delle celle. b_ru: vettore di polarizzazione per il gate di ripristino e aggiornamento. b_c: vettore di polarizzazione per la porta di connessione della cella.

Restituisce r: Uscita del gate di reset. u: uscita della porta di aggiornamento. c: Uscita della porta di connessione della cella. h: Stato attuale della cella GRU.

Nota sulla notazione delle variabili:

La concatenazione di a e b è rappresentata da a_b Il prodotto scalare per elemento di a e b è rappresentato da ab Il prodotto scalare per elemento è rappresentato da \circ La moltiplicazione di matrice è rappresentata da *

I bias vengono inizializzati con: `b_ru` - Constant_initializer(1.0) `b_c` - Constant_initializer(0.0)

Questa operazione del kernel implementa le seguenti equazioni matematiche:

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
 

Metodi pubblici

Uscita <T>
C ()
statico <T estende il numero> GRUBlockCell <T>
create ( ambito ambito , operando <T> x, operando <T> hPrev, operando <T> wRu, operando <T> wC, operando <T> bRu, operando <T> bC)
Metodo factory per creare una classe che racchiude una nuova operazione GRUBlockCell.
Uscita <T>
H ()
Uscita <T>
R ()
Uscita <T>
tu ()

Metodi ereditati

Metodi pubblici

Uscita pubblica <T> c ()

public static GRUBlockCell <T> create ( ambito ambito , operando <T> x, operando <T> hPrev, operando <T> wRu, operando <T> wC, operando <T> bRu, operando <T> bC)

Metodo factory per creare una classe che racchiude una nuova operazione GRUBlockCell.

Parametri
scopo ambito attuale
ritorna
  • una nuova istanza di GRUBlockCell

Uscita pubblica <T> h ()

Uscita pubblica <T> r ()

Uscita pubblica <T> u ()