ComenzarEmpieza gratis

Definición de las capas del modelo Teacher Forcing

Definirás una versión nueva y mejorada del modelo de traducción automática que definiste anteriormente. ¿Sabías que modelos como el traductor automático de Google utilizaron esta técnica de «forzamiento del profesor» para entrenar su modelo?

Como ya has visto, tu modelo anterior debe modificarse ligeramente para adoptar el método Teacher Forcing. En este ejercicio, realizarás los cambios necesarios en el modelo anterior. Se te han proporcionado los parámetros de idioma en_len y fr_len (longitud de las frases en inglés/francés con relleno), en_vocab y fr_vocab (tamaño del vocabulario de los conjuntos de datos en inglés/francés) y hsize (tamaño de la capa oculta de las capas GRU). Recuerda que el decodificador aceptará una secuencia francesa con un elemento menos que fr_len. Recuerda que utilizamos el prefijo « en » para referirnos a cuestiones relacionadas con el codificador y « de » para cuestiones relacionadas con el decodificador.

Este ejercicio forma parte del curso

Traducción automática con Keras

Ver curso

Instrucciones del ejercicio

  • Importa el submódulo layers desde tensorflow.keras.
  • Obtener los valores de salida y estado del codificador y asignarlos a en_out y en_state respectivamente.
  • Define una capa de decodificador « Input » que acepte una secuencia larga de palabras francesas codificadas como «onehot» con un tamaño de « fr_len-1 ».
  • Define una capa softmax de TimeDistributed Dense con fr_vocab nodos.

Ejercicio interactivo práctico

Prueba este ejercicio completando el código de muestra.

# Import the layers submodule from keras
import ____.____.____ as layers

en_inputs = layers.Input(shape=(en_len, en_vocab))
en_gru = layers.GRU(hsize, return_state=True)
# Get the encoder output and state
____, ____ = en_gru(____)

# Define the decoder input layer
de_inputs = layers.____(shape=(____, ____))
de_gru = layers.GRU(hsize, return_sequences=True)
de_out = de_gru(de_inputs, initial_state=en_state)
# Define a TimeDistributed Dense softmax layer with fr_vocab nodes
de_dense = layers.____(____.____(____, activation=____))
de_pred = de_dense(de_out)
Editar y ejecutar código