ComenzarEmpieza gratis

Definición del decodificador del modelo de inferencia

El modelo de inferencia es el modelo que se utilizará en entornos reales para realizar traducciones cuando el usuario lo requiera. En este ejercicio, tendrás que implementar el decodificador del modelo de inferencia.

El decodificador del modelo de inferencia es diferente al decodificador del modelo de entrenamiento. No podemos alimentar el decodificador con palabras en francés porque eso es lo que queremos predecir. Por suerte, hay una solución. Podemos utilizar la palabra francesa predicha en el paso anterior para alimentar el decodificador del modelo de inferencia. Por lo tanto, cuando deseas generar una traducción, el decodificador necesita generar una palabra a la vez, mientras consume la salida anterior como entrada.

Para este ejercicio, se han importado las variables hsize (tamaño oculto de la capa GRU ), fr_len y fr_vocab. Recuerda que el prefijo « de » se utiliza para referirse al decodificador.

Este ejercicio forma parte del curso

Traducción automática con Keras

Ver curso

Instrucciones del ejercicio

  • Define una capa de red neuronal convolucional ( Input ) que acepte un lote de secuencias de palabras francesas codificadas como onehot (longitud de secuencia 1).
  • Define otra capa « Input » que acepte un lote de estados « hsize », que utilizarás para alimentar el estado anterior al decodificador.
  • Obtener la salida y el estado del decodificador GRU.
  • Define un modelo que acepte las palabras francesas « Input » y el estado anterior « Input » y que genere la predicción final y el nuevo estado « GRU ».

Ejercicio interactivo práctico

Prueba este ejercicio completando el código de muestra.

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())
Editar y ejecutar código