7.5.2 LSTM 셀 구현

    필요한 라이브러리 및 데이터 호출은 RNN 셀에서의 수행과 동일하므로 생략하고, LSTM 셀을 이용한 네트워크 코드를 살펴보겠습니다.

    코드 7-12 네트워크 생성

    class LSTM_Build(tf.keras.Model):
        def __init__(self, units):
            super(LSTM_Build, self).__init__()
    
            self.state0 = [tf.zeros([batch_size, units]), tf.zeros([batch_size, units])]
            self.state1 = [tf.zeros([batch_size, units]), tf.zeros([batch_size, units])]
    
            self.embedding = tf.keras.layers.Embedding(total_words, embedding_len,
                                                       input_length=max_review_len)
            self.RNNCell0 = tf.keras.layers.LSTMCell(units, dropout=0.5) ------ ①
            self.RNNCell1 = tf.keras.layers.LSTMCell(units, dropout=0.5)
            self.outlayer = tf.keras.layers.Dense(1)
    
        def call(self, inputs, training=None):
            x = inputs
            x = self.embedding(x)
            state0 = self.state0 ------ 초기 상태 0으로 설정
            state1 = self.state1
            for word in tf.unstack(x, axis=1):
                out0, state0 = self.RNNCell0(word, state0, training) ------ train 매개변수 추가
                out1, state1 = self.RNNCell1(out0, state1, training)
    
            x = self.outlayer(out1)
            prob = tf.sigmoid(x)
    
            return prob
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.