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

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

Здесь вы сделаете первый шаг к созданию модели машинного перевода: реализуете энкодер. Энкодер, который вы построите, значительно проще моделей, применяемых в реальных системах — например, в сервисе машинного перевода Google. Но не беспокойтесь: несмотря на простоту, концепции те же, что и в сложных моделях. Мы будем использовать префикс en (например, en_gru) для всего, что относится к энкодеру, и de — для всего, что относится к декодеру (например, de_gru).

Обратите внимание, что мы выбираем значение en_vocab равным 150, хотя фактический размер словаря составляет 228. Уменьшение словаря снижает потребление памяти моделью. Небольшое сокращение словаря вполне допустимо, так как при этом исключаются самые редкие слова. В задачах машинного перевода редкие слова, как правило, менее важны, чем частотные.

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

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

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

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

  • Определите слой Input для входных данных с размером словаря en_vocab и длиной последовательности en_len, используя аргумент shape.
  • Определите слой keras.layers.GRU с hsize скрытыми единицами, который возвращает своё состояние.
  • Получите выходные данные слоя GRU, подав на вход en_inputs: присвойте состояние GRU переменной en_state, а вывод — переменной en_out.
  • Определите модель keras.models.Model, входом которой является en_inputs, а выходом — en_state, и выведите сводку модели.

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

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

import tensorflow.keras as keras

en_len = 15
en_vocab = 150
hsize = 48

# Define an input layer
en_inputs = keras.layers.____(____=____)
# Define a GRU layer which returns the state
en_gru = ____(____, ____=____)
# Get the output and state from the GRU
____, ____ = ____(____)
# Define and print the model summary
encoder = ____(inputs=____, ____=____)
print(encoder.____)
Редактировать и запускать код