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
Instrucciones del ejercicio
- Crea datos de validación transformando
v_en
yv_fr
utilizando la funciónsents2seqs
. - 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
yv_de_y
junto convalid_size
comobatch_size
para evaluar el modelonmt
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))