GRU 는 LSTM 과 비슷한 원리로 작동, 간소화된 방식으로 계산이 간편하다는 장점,
이전 시점에서 받는 벡터가 h 로 하나이다. 또한 하나의 벡터 z 가 삭제, 입력 게이트를 모두 제어한다.
출력 게이트가 없어 전체 상태 벡터가 매 시점 출력된다.
이전 상태의 어느 부분이 g 에 노출될지 제어하는 새로운 값 r 이 있다.
def cal_z(self, t, input_x, output):
w_xz = np.random.rand(output.shape[0], input_x.shape[0])
w_hz = np.random.rand(output.shape[0], output.shape[1])
b_z = np.random.rand(output.shape[0],1)
self.w_xz.append(w_xz)
self.w_hz.append(w_hz)
self.b_z.append(b_z)
z = w_xz@input_x + w_hz@self.hidden_unit[t] + b_z
self.z.append(z)
return z
'implement_ml_models > RNN' 카테고리의 다른 글
implement_GRU(g) (0) | 2022.12.13 |
---|---|
implement_GRU(r) (0) | 2022.12.13 |
implement_LSTM(hidden_unit_output) (0) | 2022.12.13 |
implement_LSTM(cell_state) (0) | 2022.12.13 |
implement_LSTM(output_gate) (0) | 2022.12.13 |