Treinar o modelo com validação
Aqui você vai aprender como treinar o modelo de tradução automática neural com uma etapa de validação.
Você vai ver o modelo “ nmt
” que criou no último capítulo. Além disso, você vai treinar o modelo com frases em inglês e francês que você encontra no repositório GitHub da Udacity. Você vai receber um texto em inglês (tr_en
) e um texto em francês (tf_fr
) pra treinar, além de um texto em inglês (v_en
) e um texto em francês (v_fr
) pra validar o que você aprendeu no exercício anterior.
Treinar o modelo leva um tempinho, então seu código vai demorar um pouco mais pra rodar.
Este exercício faz parte do curso
Tradução automática com Keras
Instruções do exercício
- Crie dados de validação transformando
v_en
ev_fr
usando a funçãosents2seqs
. - Consiga um lote de entradas e saídas transformadas corretamente usando a função
sents2seqs
. - Use as entradas (
en_x
) e saídas (de_y
) para treinar onmt
em um único lote. - Use
v_en_x
ev_de_y
junto comvalid_size
comobatch_size
para avaliar o modelonmt
e ver a precisão da validação.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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))