GRUBlockCellGrad

공개 최종 클래스 GRUlockCellGrad

1시간 단계에 대한 GRU 셀 역전파를 계산합니다.

인수 x: GRU 셀에 대한 입력입니다. h_prev: 이전 GRU 셀의 상태 입력입니다. w_ru: 재설정 및 업데이트 게이트에 대한 가중치 행렬입니다. w_c: 셀 연결 게이트의 가중치 행렬입니다. b_ru: 재설정 및 업데이트 게이트에 대한 바이어스 벡터입니다. b_c: 셀 연결 게이트에 대한 바이어스 벡터입니다. r: 리셋 게이트의 출력. u: 업데이트 게이트의 출력. c: 셀 연결 게이트의 출력. d_h: 목적 함수에 대한 h_new wrt의 기울기입니다.

d_x를 반환합니다: 목적 함수에 대한 x wrt의 기울기. d_h_prev: 목적 함수에 대한 h wrt의 기울기. d_c_bar 목적 함수에 대한 c_bar의 기울기입니다. d_r_bar_u_bar 목적 함수에 대한 r_bar 및 u_bar의 기울기입니다.

이 커널 작업은 다음 수학 방정식을 구현합니다.

변수 표기에 대한 참고사항:

a와 b의 연결은 a_b로 표시됩니다. a와 b의 요소별 내적은 ab로 표시됩니다. 요소별 내적은 \circ로 표시됩니다. 행렬 곱셈은 *로 표시됩니다.

명확성을 위한 추가 참고사항:

'w_ru'는 4개의 서로 다른 행렬로 분할될 수 있습니다.

w_ru = [w_r_x w_u_x
         w_r_h_prev w_u_h_prev]
 
마찬가지로 `w_c`는 2개의 서로 다른 행렬로 분할될 수 있습니다.
w_c = [w_c_x w_c_h_prevr]
 
편견도 마찬가지다.
b_ru = [b_ru_x b_ru_h]
 b_c = [b_c_x b_c_h]
 
표기법에 대한 또 다른 참고사항:
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
 
아래 그라디언트 뒤에 숨겨진 수학:
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
 
아래 계산은 그라디언트에 대한 Python 래퍼(그라디언트 커널이 아님)에서 수행됩니다.
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
 

상수

OP_NAME TensorFlow 코어 엔진에서 알려진 이 작업의 이름

공개 방법

static <T는 TNumber를 확장합니다. > GRUBlockCellGrad <T>
create ( 범위 범위, 피연산자 <T> x, 피연산자 <T> hPrev, 피연산자 <T> wRu, 피연산자 <T> wC, 피연산자 <T> bRu, 피연산자 <T> bC, 피연산자 <T> r, 피연산자 <T > u, 피연산자 <T> c, 피연산자 <T> dH)
새로운 GRUBlockCellGrad 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.
출력 <T>
dC바 ()
출력 <T>
dHPrev ()
출력 <T>
출력 <T>
dX ()

상속된 메서드

org.tensorflow.op.RawOp 클래스에서
최종 부울
같음 (객체 객체)
최종 정수
작업
op ()
이 계산 단위를 단일 Operation 으로 반환합니다.
최종 문자열
불리언
같음 (개체 arg0)
마지막 수업<?>
getClass ()
정수
해시코드 ()
최종 무효
알림 ()
최종 무효
통지모두 ()
toString ()
최종 무효
대기 (long arg0, int arg1)
최종 무효
기다리세요 (긴 arg0)
최종 무효
기다리다 ()
org.tensorflow.op.Op 에서
추상 실행환경
환경 ()
이 작업이 생성된 실행 환경을 반환합니다.
추상적인 작업
op ()
이 계산 단위를 단일 Operation 으로 반환합니다.

상수

공개 정적 최종 문자열 OP_NAME

TensorFlow 코어 엔진에서 알려진 이 작업의 이름

상수 값: "GRUBlockCellGrad"

공개 방법

public static GRUBlockCellGrad <T> create ( Scope 범위, Operand <T> x, Operand <T> hPrev, Operand <T> wRu, Operand <T> wC, Operand <T> bRu, Operand <T> bC, Operand <T > r, 피연산자 <T> u, 피연산자 <T> c, 피연산자 <T> dH)

새로운 GRUBlockCellGrad 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.

매개변수
범위 현재 범위
보고
  • GRUBlockCellGrad의 새로운 인스턴스

공개 출력 <T> dCBar ()

공개 출력 <T> dHPrev ()

공개 출력 <T> dRBarUBar ()

공개 출력 <T> dX ()