GRUBlockCellGrad

classe final pública GRUBlockCellGrad

Calcula a retropropagação da célula GRU para um intervalo de tempo.

Args x: Entrada para a célula GRU. h_prev: entrada de estado da célula GRU anterior. w_ru: Matriz de peso para o portão de redefinição e atualização. w_c: Matriz de pesos para a porta de conexão da célula. b_ru: Vetor de polarização para a porta de reinicialização e atualização. b_c: Vetor de polarização para a porta de conexão da célula. 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. d_h: Gradientes do h_new em relação à função objetivo.

Retorna d_x: Gradientes de x em relação à função objetivo. d_h_prev: Gradientes do h em relação à função objetivo. d_c_bar Gradientes de c_bar em relação à função objetivo. d_r_bar_u_bar Gradientes de r_bar e u_bar em relação à função objetivo.

Esta operação do kernel implementa as seguintes equações matemáticas:

Nota sobre a notação das variáveis:

A concatenação de aeb é representada por a_b O produto escalar elementar de aeb é representado por ab O produto escalar elementar é representado por \circ A multiplicação de matrizes é representada por *

Notas adicionais para maior clareza:

`w_ru` pode ser segmentado em 4 matrizes diferentes.

w_ru = [w_r_x w_u_x
         w_r_h_prev w_u_h_prev]
 
Da mesma forma, `w_c` pode ser segmentado em 2 matrizes diferentes.
w_c = [w_c_x w_c_h_prevr]
 
O mesmo vale para preconceitos.
b_ru = [b_ru_x b_ru_h]
 b_c = [b_c_x b_c_h]
 
Outra observação sobre notação:
d_x = d_x_component_1 + d_x_component_2
 
 where d_x_component_1 = d_r_bar * w_r_x^T + d_u_bar * w_r_x^T
 and d_x_component_2 = d_c_bar * w_c_x^T
 
 d_h_prev = d_h_prev_component_1 + d_h_prevr \circ r + d_h \circ u
 where d_h_prev_componenet_1 = d_r_bar * w_r_h_prev^T + d_u_bar * w_r_h_prev^T
 
Matemática por trás dos gradientes abaixo:
d_c_bar = d_h \circ (1-u) \circ (1-c \circ c)
 d_u_bar = d_h \circ (h-c) \circ u \circ (1-u)
 
 d_r_bar_u_bar = [d_r_bar d_u_bar]
 
 [d_x_component_1 d_h_prev_component_1] = d_r_bar_u_bar * w_ru^T
 
 [d_x_component_2 d_h_prevr] = d_c_bar * w_c^T
 
 d_x = d_x_component_1 + d_x_component_2
 
 d_h_prev = d_h_prev_component_1 + d_h_prevr \circ r + u
 
O cálculo abaixo é realizado no wrapper python para os gradientes (não no kernel do gradiente).
d_w_ru = x_h_prevr^T * d_c_bar
 
 d_w_c = x_h_prev^T * d_r_bar_u_bar
 
 d_b_ru = sum of d_r_bar_u_bar along axis = 0
 
 d_b_c = sum of d_c_bar along axis = 0
 

Constantes

Corda OP_NAME O nome desta operação, conforme conhecido pelo mecanismo principal do TensorFlow

Métodos Públicos

estático <T estende TNumber > GRUBlockCellGrad <T>
create ( Escopo do escopo, Operando <T> x, Operando <T> hPrev, Operando <T> wRu, Operando <T> wC, Operando <T> bRu, Operando <T> bC, Operando <T> r, Operando <T > u, Operando <T> c, Operando <T> dH)
Método de fábrica para criar uma classe que envolve uma nova operação GRUBlockCellGrad.
Saída <T>
dCBar ()
Saída <T>
dHPrev ()
Saída <T>
Saída <T>
dX ()

Métodos herdados

org.tensorflow.op.RawOp
booleano final
é igual (objeto obj)
int final
Operação
op ()
Retorne esta unidade de cálculo como uma única Operation .
sequência final
booleano
é igual (objeto arg0)
aula final<?>
getClass ()
interno
código hash ()
vazio final
notificar ()
vazio final
notificar todos ()
Corda
toString ()
vazio final
espere (long arg0, int arg1)
vazio final
espere (arg0 longo)
vazio final
espere ()
org.tensorflow.op.Op
ambiente de execução abstrato
env ()
Retorne o ambiente de execução em que esta operação foi criada.
operação abstrata
op ()
Retorne esta unidade de cálculo como uma única Operation .

Constantes

String final estática pública OP_NAME

O nome desta operação, conforme conhecido pelo mecanismo principal do TensorFlow

Valor constante: "GRUBlockCellGrad"

Métodos Públicos

public static GRUBlockCellGrad <T> create ( Escopo escopo, Operando <T> x, Operando <T> hPrev, Operando <T> wRu, Operando <T> wC, Operando <T> bRu, Operando <T> bC, Operando <T > r, Operando <T> u, Operando <T> c, Operando <T> dH)

Método de fábrica para criar uma classe que envolve uma nova operação GRUBlockCellGrad.

Parâmetros
escopo escopo atual
Devoluções
  • uma nova instância do GRUBlockCellGrad

Saída pública <T> dCBar ()

Saída pública <T> dHPrev ()

Saída pública <T> dRBarUBar ()

Saída pública <T> dX ()