Определение декодера
В этом упражнении вы реализуете декодер и определите сквозную модель, которая принимает входные данные энкодера и выдаёт результаты слоя 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()