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)
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.