CommencerCommencer gratuitement

Définition du décodeur du modèle d'inférence

Le modèle d'inférence est le modèle qui sera utilisé en production pour effectuer les traductions lorsque l'utilisateur en aura besoin. Dans cet exercice, vous devrez implémenter le décodeur du modèle d'inférence.

Le décodeur du modèle d'inférence diffère du décodeur du modèle d'entraînement. Nous ne pouvons pas alimenter le décodeur avec des mots français, car c'est ce que nous souhaitons prédire. Heureusement, il existe une solution. Nous pouvons utiliser le mot français prédit lors de l'étape précédente pour alimenter le décodeur du modèle d'inférence. Par conséquent, lorsque vous souhaitez générer une traduction, le décodeur doit générer un mot à la fois, tout en utilisant la sortie précédente comme entrée.

Pour cet exercice, les variables hsize (taille cachée de la couche d'GRU ), fr_len et fr_vocab ont été importées. Veuillez noter que le préfixe « de » est utilisé pour désigner le décodeur.

Cet exercice fait partie du cours

Traduction automatique avec Keras

Afficher le cours

Instructions

  • Définissez une couche d'Input s qui accepte un lot de séquences de mots français encodés en onehot (longueur de séquence 1).
  • Définissez une autre couche d'Input qui accepte un lot d'états d'hsize, que vous utiliserez pour transmettre l'état précédent au décodeur.
  • Obtenir la sortie et l'état du décodeur GRU.
  • Définissez un modèle qui accepte les mots français « Input » et l'état précédent « Input » et qui renvoie la prédiction finale et le nouvel état « GRU ».

Exercice interactif pratique

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

import tensorflow.keras.layers as layers
from tensorflow.keras.models import Model
# Define an input layer that accepts a single onehot encoded word
de_inputs = layers.____(shape=(____, ____))
# Define an input to accept the t-1 state
de_state_in = layers.____(shape=(____,))
de_gru = layers.GRU(hsize, return_state=True)
# Get the output and state from the GRU layer
de_out, de_state_out = ____(de_inputs, initial_state=____)
de_dense = layers.Dense(fr_vocab, activation='softmax')
de_pred = de_dense(de_out)

# Define a model
decoder = Model(inputs=[____, ____], outputs=[____, ____])
print(decoder.summary())
Modifier et exécuter le code