전체 인코더-디코더 모델 구현

Keras로 배우는 Machine Translation

Thushan Ganegedara

Data Scientist and Author

지금까지 구현한 내용

  • 인코더가 영어(소스) 입력을 처리합니다
  • 인코더가 컨텍스트 벡터를 생성합니다
  • 디코더가 반복된 컨텍스트 벡터 집합을 입력으로 받습니다
  • 디코더가 GRU 출력 시퀀스를 생성합니다

인코더-디코더 모델의 반복 벡터

Keras로 배우는 Machine Translation

디코더 상단 부분

  • TimeDistributed와 Dense 레이어로 구현했습니다.

TimeDistributed가 포함된 인코더-디코더

Keras로 배우는 Machine Translation

전체 모델 구현

  • 인코더

    en_inputs = Input(shape=(en_len, en_vocab))
    en_gru = GRU(hsize, return_state=True)
    en_out, en_state = en_gru(en_inputs)
    
  • 디코더

    de_inputs = RepeatVector(fr_len)(en_state)
    de_gru = GRU(hsize, return_sequences=True)
    de_out = de_gru(de_inputs, initial_state=en_state)
    
Keras로 배우는 Machine Translation

전체 모델 구현

  • 소프트맥스 예측 레이어
de_dense = keras.layers.Dense(fr_vocab, activation='softmax')
de_dense_time = keras.layers.TimeDistributed(de_dense)
de_pred = de_seq_dense(de_out)
Keras로 배우는 Machine Translation

모델 컴파일

전체 모델 정의

nmt = keras.models.Model(inputs=en_inputs, outputs=de_pred)

모델 컴파일

nmt.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['acc'])
Keras로 배우는 Machine Translation

Lass uns üben!

Keras로 배우는 Machine Translation

Preparing Video For Download...