ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Crie dados de validação transformando v_en e v_fr usando a função sents2seqs.
  • 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 o nmt em um único lote.
  • Use v_en_x e v_de_y junto com valid_size como batch_size para avaliar o modelo nmt 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))
Editar e executar o código