Calcula a propagação direta da célula GRU para 1 passo de tempo.
Args x: Entrada para a célula GRU. h_prev: Estado de entrada da célula GRU anterior. w_ru: Matriz de peso para o portão de reset e atualização. w_c: Matriz de peso para a porta de conexão da célula. b_ru: Vetor de polarização para a porta de reset e atualização. b_c: Vetor de polarização para a porta de conexão da célula.
Retorna r: Saída da porta de reset. u: Saída do portão de atualização. c: Saída da porta de conexão da célula. h: Estado atual da célula GRU.
Nota sobre a notação das variáveis:
A concatenação de a e b é representada por a_b O produto escalar por elementos de a e b é representado por ab O produto escalar por elementos é representado por \circ A multiplicação de matrizes é representada por *
Os vieses são inicializados com: `b_ru` - constant_initializer(1.0) `b_c` - constant_initializer(0.0)
Este kernel op implementa as seguintes equações matemáticas:
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
Métodos públicos
Saída <T> | c () |
estático <T estende Número> GRUBlockCell <T> | |
Saída <T> | h () |
Saída <T> | r () |
Saída <T> | você () |
Métodos Herdados
Métodos públicos
public static GRUBlockCell <T> create ( Escopo do escopo, Operando <T> x, Operando <T> hPrev, Operando <T> wRu, Operando <T> wC, Operando <T> bRu, Operando <T> bC)
Método de fábrica para criar uma classe que envolve uma nova operação GRUBlockCell.
Parâmetros
alcance | escopo atual |
---|
Devoluções
- uma nova instância do GRUBlockCell