Реализация полной модели энкодер-декодер

Машинный перевод с Keras

Thushan Ganegedara

Data Scientist and Author

Что уже реализовано

  • Энкодер принимает входные данные на английском (исходном) языке
  • Энкодер формирует контекстный вектор
  • Декодер принимает повторяющийся набор контекстных векторов
  • Декодер выводит последовательность выходов GRU

Модель энкодер-декодер с повторяющимся вектором

Машинный перевод с Keras

Верхняя часть декодера

  • Реализовано с помощью слоёв TimeDistributed и Dense.

Энкодер-декодер с TimeDistributed

Машинный перевод с Keras

Реализация полной модели

  • Энкодер

    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

Реализация полной модели

  • Слой прогнозирования на основе softmax
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

Компиляция модели

Определение полной модели

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

Компиляция модели

nmt.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['acc'])
Машинный перевод с Keras

Давайте потренируемся!

Машинный перевод с Keras

Preparing Video For Download...