Визначення декодера
У цій вправі ви реалізуєте декодер і побудуєте модель «від краю до краю», яка перетворює вхідні дані енкодера на виходи 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()