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
Costanti
Corda | OP_NAME | Il nome di questa operazione, come noto al motore principale di TensorFlow |
Metodi pubblici
Uscita <T> | C () |
statico <T estende TNumber > GRUBlockCell <T> | |
Uscita <T> | H () |
Uscita <T> | R () |
Uscita <T> | tu () |
Metodi ereditati
Costanti
Stringa finale statica pubblica OP_NAME
Il nome di questa operazione, come noto al motore principale di TensorFlow
Metodi pubblici
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
ambito | ambito attuale |
---|
Ritorni
- una nuova istanza di GRUBlockCell