ComenzarEmpieza gratis

Entrenamiento del modelo con validación

Aquí aprenderás a entrenar el modelo de traducción automática neuronal con un paso de validación.

Se te proporciona el modelo « nmt » que creaste en el último capítulo. Además, entrenarás el modelo con frases en inglés y francés obtenidas del repositorio GitHub de Udacity. Se te proporciona el texto de formación en inglés (tr_en) y en francés (tf_fr), así como el texto de validación en inglés (v_en) y en francés (v_fr) del ejercicio anterior.

El entrenamiento del modelo lleva un poco de tiempo, por lo que tu código tardará un poco más en ejecutarse.

Este ejercicio forma parte del curso

Traducción automática con Keras

Ver curso

Instrucciones del ejercicio

  • Crea datos de validación transformando v_en y v_fr utilizando la función sents2seqs.
  • Obtén un lote de entradas y salidas correctamente transformadas utilizando la función « sents2seqs ».
  • Utiliza las entradas (en_x) y las salidas (de_y) para entrenar el modelo de texto generativo ( nmt ) en un solo lote.
  • Utiliza v_en_x y v_de_y junto con valid_size como batch_size para evaluar el modelo nmt y obtener la precisión de la validación.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Convert validation data to onehot
v_en_x = ____(____, ____, onehot=____, reverse=____)
v_de_y = ____(____, ____, onehot=True)

n_epochs, bsize = 3, 250
for ei in range(n_epochs):
  for i in range(0,train_size,bsize):
    # Get a single batch of inputs and outputs
    en_x = ____(____, tr_en[____:____], onehot=____, reverse=____)
    de_y = sents2seqs(____, tr_fr[____:____], onehot=True)
    # Train the model on a single batch of data
    nmt.____(____, ____)    
  # Evaluate the trained model on the validation data
  res = nmt.evaluate(____, ____, batch_size=valid_size, verbose=0)
  print("{} => Loss:{}, Val Acc: {}".format(ei+1,res[0], res[1]*100.0))
Editar y ejecutar código