ПочатиПочніть безкоштовно

Визначення шарів моделі з Teacher Forcing

Ви визначатимете нову й покращену версію моделі машинного перекладу, яку створювали раніше. Чи знали ви, що моделі на кшталт Google Machine Translator використовували техніку Teacher Forcing для тренування?

Як ви вже бачили, попередню модель потрібно трохи змінити, щоб застосувати Teacher Forcing. У цій вправі ви виконаєте потрібні зміни до попередньої моделі. Вам надано мовні параметри en_len і fr_len (довжина доповнених до фіксованої довжини англійських/французьких речень), en_vocab і fr_vocab (розмір словника англійського/французького наборів даних) та hsize (розмір прихованого шару шарів GRU). Пам'ятайте, що декодер прийматиме французьку послідовність на один елемент коротшу за fr_len. Також пам'ятайте, що префікс en використовується для всього, що стосується енкодера, а de — для декодера.

Ця вправа є частиною курсу

Machine Translation з Keras

Переглянути курс

Інструкції до вправи

  • Імпортуйте підмодуль layers з tensorflow.keras.
  • Отримайте вихід енкодера та значення стану й присвойте їх відповідно до en_out і en_state.
  • Визначте шар Input декодера, який приймає послідовність довжини fr_len-1 з onehot-кодованих французьких слів.
  • Визначте шар TimeDistributed типу Dense із softmax та з кількістю вузлів fr_vocab.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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)
Редагувати та запускати код