НачатьНачать бесплатно

Определение декодера

В этом упражнении вы реализуете декодер и определите сквозную модель, которая принимает входные данные энкодера и выдаёт результаты слоя GRU декодера. Декодер использует ту же архитектуру, что и энкодер, однако входные данные и состояния, передаваемые декодеру, отличаются. Например, декодер принимает на вход контекстный вектор, созданный энкодером, а также начальное состояние. Напомним, что для обозначения всего, что относится к энкодеру, используется префикс en (например, en_gru), а для декодера — de (например, de_gru).

Для реализации декодера вы будете использовать слои RepeatVector и GRU.

В этом упражнении вам уже предоставлены модель энкодера и все его слои, реализованные ранее. Например, входные данные энкодера доступны как en_inputs, а контекстный вектор — как en_state. Обратите внимание, что объекты GRU и Model уже импортированы.

Это упражнение является частью курса

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

Посмотреть курс

Инструкции к упражнению

  • Определите слой RepeatVector, который принимает en_state в качестве входных данных и повторяет его fr_len раз.
  • Определите слой GRU с именем decoder_gru, количество скрытых блоков которого равно hsize и который возвращает все выходные значения.
  • Получите выходные данные слоя decoder_gru, передав de_inputs в качестве входных данных и en_state в качестве начального состояния декодера.
  • Определите модель, которая принимает en_inputs в качестве входных данных и gru_outputs в качестве выходных данных.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

from tensorflow.keras.layers import RepeatVector

hsize = 48
fr_len = 20
# Define a RepeatVector layer
de_inputs = ____(____)(____)
# Define a GRU model that returns all outputs
decoder_gru = ____(____, ____=____)
# Get the outputs of the decoder
gru_outputs = ____(____, initial_state=____)
# Define a model with the correct inputs and outputs
enc_dec = ____(inputs=____, outputs=____)
enc_dec.summary()
Редактировать и запускать код