CommencerCommencer gratuitement

Définition du modèle d'intégration

Vous allez définir un modèle Keras qui :

  • Utilise les couches d'Embedding
  • Sera formé avec l'aide d'un enseignant

Ce modèle comportera deux couches d'intégration : une couche d'intégration d'encodeur et une couche d'intégration de décodeur. De plus, comme le modèle est entraîné à l'aide de Teacher Forcing, il utilisera une longueur de séquence de fr_len-1 dans la couche d'Input du décodeur.

Pour cet exercice, vous avez importé toutes les informations nécessaires keras.layers et Model. En outre, les variables suivantes ont été définies : « en_len » (longueur de la séquence en anglais), « fr_len » (longueur de la séquence en français), « en_vocab » (taille du vocabulaire anglais), « fr_vocab » (taille du vocabulaire français) et « hsize » (taille cachée).

Cet exercice fait partie du cours

Traduction automatique avec Keras

Afficher le cours

Instructions

  • Définissez une couche d'Input qui accepte une séquence d'identifiants de mots.
  • Définissez une couche d'Embedding s qui intègre des mots d'en_vocab, a une longueur de 96 et peut accepter une séquence d'identifiants (la longueur de la séquence est spécifiée à l'aide de l'argument input_length ).
  • Définissez une couche d'Embedding qui intègre des mots de l'fr_vocab, a une longueur de 96 et peut accepter une séquence d'identifiants d'fr_len-1.
  • Définissez un modèle qui prend en entrée une donnée provenant de l'encodeur et une donnée provenant du décodeur (dans cet ordre) et qui génère les prédictions de mots.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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'])
Modifier et exécuter le code