CommencezCommencez gratuitement

Définir l'encodeur

Vous faites ici votre premier pas vers la création d'un modèle de traduction automatique : implémenter l'encodeur. L'encodeur que vous allez réaliser est très simple comparativement aux modèles complexes utilisés dans des applications réelles, comme le service de traduction de Google. Ne vous en faites pas : même si le modèle est simple, les concepts sont les mêmes que pour ces modèles avancés. Ici, nous utiliserons le préfixe en (p. ex. en_gru) pour tout ce qui concerne l'encodeur et de pour ce qui concerne le décodeur (p. ex. de_gru).

Vous verrez que nous fixons en_vocab à une valeur plus petite (150) que la valeur réelle (228) que nous avons trouvée. Réduire la taille du vocabulaire diminue l'empreinte mémoire du modèle. La réduire légèrement est acceptable, car nous retirons les mots les plus rares en le faisant. Pour les tâches de traduction automatique, les mots rares ont généralement moins d'importance que les mots fréquents.

Cette activité fait partie du cours

Traduction automatique avec Keras

Voir le cours

Instructions de l’exercice

  • Définissez une couche Input pour une entrée ayant une taille de vocabulaire en_vocab et une longueur de séquence en_len, à l'aide de l'argument shape.
  • Définissez une couche keras.layers.GRU avec hsize unités cachées qui retourne son état.
  • Obtenez les sorties de la couche GRU en lui fournissant en_inputs et attribuez l'état de la GRU à en_state et la sortie à en_out.
  • Définissez un keras.models.Model dont l'entrée est en_inputs et la sortie est en_state, puis affichez le sommaire du modèle.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

import tensorflow.keras as keras

en_len = 15
en_vocab = 150
hsize = 48

# Define an input layer
en_inputs = keras.layers.____(____=____)
# Define a GRU layer which returns the state
en_gru = ____(____, ____=____)
# Get the output and state from the GRU
____, ____ = ____(____)
# Define and print the model summary
encoder = ____(inputs=____, ____=____)
print(encoder.____)
Modifier et exécuter le code