Визначення моделі з embedding
Ви визначатимете модель Keras, яка:
- використовує шари
Embedding, - тренується з Teacher Forcing.
Ця модель матиме два шари embedding: шар вбудовування для енкодера і шар вбудовування для декодера. Крім того, оскільки модель тренується за допомогою Teacher Forcing, у шарі Input декодера вона використовуватиме довжину послідовності fr_len-1.
У цій вправі у вас уже імпортовано всі потрібні keras.layers і Model. Також визначено змінні en_len (довжина англійської послідовності), fr_len (довжина французької послідовності), en_vocab (розмір англійського словника), fr_vocab (розмір французького словника) і hsize (розмір прихованого шару).
Ця вправа є частиною курсу
Machine Translation з Keras
Інструкції до вправи
- Визначте шар
Input, який приймає послідовність ID слів. - Визначте шар
Embedding, що вбудовуєen_vocabслів, має довжину 96 і може приймати послідовність ID (довжину послідовності задайте аргументомinput_length). - Визначте шар
Embedding, що вбудовуєfr_vocabслів, має довжину 96 і може приймати послідовність ізfr_len-1ID. - Визначте модель, яка приймає вхід від енкодера та вхід від декодера (саме в такому порядку) і повертає передбачення слів.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Define an input layer which accepts a sequence of word IDs
en_inputs = Input(____=(____,))
# Define an Embedding layer which accepts en_inputs
en_emb = ____(____, ____, input_length=____)(en_inputs)
en_out, en_state = GRU(hsize, return_state=True)(en_emb)
de_inputs = Input(shape=(fr_len-1,))
# Define an Embedding layer which accepts de_inputs
de_emb = Embedding(____, 96, input_length=____)(____)
de_out, _ = GRU(hsize, return_sequences=True, return_state=True)(de_emb, initial_state=en_state)
de_pred = TimeDistributed(Dense(fr_vocab, activation='softmax'))(de_out)
# Define the Model which accepts encoder/decoder inputs and outputs predictions
nmt_emb = Model([____, ____], ____)
nmt_emb.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['acc'])