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

Визначення декодера

У цій вправі ви реалізуєте декодер і побудуєте модель «від краю до краю», яка перетворює вхідні дані енкодера на виходи GRU декодера. Декодер використовує ту саму архітектуру, що й енкодер. Проте є відмінності у вхідних даних і станах, які подаються до декодера, порівняно з енкодером. Наприклад, декодер споживає контекстний вектор, згенерований енкодером, як вхід, а також як початковий стан для декодера. Пам'ятайте, що ми використовуємо префікс en (наприклад, en_gru) для всього, що стосується енкодера, і de — для всього, що стосується декодера (наприклад, de_gru).

Щоб реалізувати декодер, ви використаєте шари RepeatVector і GRU.

У цій вправі вам надано модель енкодера та окремі шари енкодера, які ви вже реалізували. Наприклад, вхідні дані енкодера надано як en_inputs, а контекстний вектор — як en_state. Також зауважте, що об'єкти GRU і Model уже імпортовано.

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

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