더북(TheBook)

번역을 수행하는 인코더와 디코더 네트워크를 구축합니다. 먼저 인코더 네트워크를 구축해 보겠습니다.

코드 10-31 인코더 네트워크 구축

class Encoder(tf.keras.Model):
  def __init__(self, vocab_size, embedding_dim, enc_units, batch_sz):
    super(Encoder, self).__init__()
    self.batch_sz = batch_sz
    self.enc_units = enc_units
    self.embedding = tf.keras.layers.Embedding(vocab_size, embedding_dim)
    self.gru = tf.keras.layers.GRU(self.enc_units,
                                   return_sequences=True,
                                   return_state=True,
                                   recurrent_initializer='glorot_uniform') ------ 7장에서 학습했던 GRU를 이용한 모델 생성

  def call(self, x, hidden):
    x = self.embedding(x)
    output, state = self.gru(x, initial_state=hidden)
    return output, state

  def initialize_hidden_state(self):
    return tf.zeros((self.batch_sz, self.enc_units)) ------ 은닉층 초기화

encoder = Encoder(vocab_inp_size, embedding_dim, units, BATCH_SIZE)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.