더북(TheBook)

GRUCell과 GRU의 코드 역시 거의 비슷합니다. GRUCell은 셀 단위로 수행되므로 다수 셀을 수행하려면 for 문처럼 반복적 수행이 필요합니다. 다음은 GRUCell과 GRU를 구현하기 위한 예시 코드입니다.

#GRUCell
for word in tf.unstack(x, axis=1):
    out0, state0 = self.RNNCell0(word, state0, training)
    out1, state1 = self.RNNCell1(out0, state1, training)

#GRU
x = self.rnn(x)

이제 생성된 네트워크를 활용하여 모델을 훈련시킵니다(RNNCell과 동일한 코드이지만 결과를 확인하려고 또 한 번 실행합니다).

코드 7-22 모델 훈련

import time
units = 64
epochs = 4
t0 = time.time()

model = GRU_Build(units)

model.compile(optimizer=tf.keras.optimizers.Adam(0.001),
              loss=tf.losses.BinaryCrossentropy(),
              metrics=['accuracy'],
              experimental_run_tf_function=False)

model.fit(train_data, epochs=epochs, validation_data=test_data, validation_freq=2)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.