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

Определение слоёв модели с методом Teacher Forcing

В этом упражнении вы определите улучшенную версию модели машинного перевода, которую создавали ранее. Кстати, именно метод Teacher Forcing используется в таких системах, как Google Translate, для обучения моделей.

Как вы уже видели, предыдущую модель необходимо немного изменить, чтобы применить Teacher Forcing. В этом упражнении вы внесёте нужные изменения. Вам предоставлены следующие языковые параметры: en_len и fr_len — длины дополненных предложений на английском и французском языках, en_vocab и fr_vocab — размеры словарей английского и французского языков, а также hsize — размер скрытого слоя в слоях GRU. Обратите внимание: декодер принимает французскую последовательность на один элемент короче, чем fr_len. Для обозначения компонентов энкодера используется префикс en, а декодера — de.

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

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

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

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

  • Импортируйте подмодуль layers из tensorflow.keras.
  • Получите выходные данные и состояние энкодера и присвойте их переменным en_out и en_state соответственно.
  • Определите входной слой Input декодера, принимающий последовательность длиной fr_len-1 из французских слов в унитарном (onehot) кодировании.
  • Определите слой TimeDistributed с функцией активации softmax и fr_vocab узлами на основе слоя Dense.

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

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

# Import the layers submodule from keras
import ____.____.____ as layers

en_inputs = layers.Input(shape=(en_len, en_vocab))
en_gru = layers.GRU(hsize, return_state=True)
# Get the encoder output and state
____, ____ = en_gru(____)

# Define the decoder input layer
de_inputs = layers.____(shape=(____, ____))
de_gru = layers.GRU(hsize, return_sequences=True)
de_out = de_gru(de_inputs, initial_state=en_state)
# Define a TimeDistributed Dense softmax layer with fr_vocab nodes
de_dense = layers.____(____.____(____, activation=____))
de_pred = de_dense(de_out)
Редактировать и запускать код