ComeçarComece de graça

Treinando o modelo

Você sabia que, em 2017, o Google Translate atendeu mais de 500 milhões de usuários por dia?

Aqui, você vai treinar seu primeiro modelo com Teacher Forcing. Teacher Forcing é amplamente usado em modelos de sequência para sequência, como o seu tradutor neural, para alcançar melhor desempenho.

Você terá à disposição a função sents2seqs(), sentenças em inglês en_text e sentenças em francês fr_text.

Este exercício faz parte do curso

Machine Translation with Keras

Ver curso

Instruções do exercício

  • Obtenha a entrada do decodificador, que contém as sequências one-hot codificadas das palavras em francês (exceto a última palavra de cada sequência).
  • Obtenha a saída do decodificador, que contém as sequências one-hot codificadas das palavras em francês (exceto a primeira palavra de cada sequência).
  • Treine o modelo em um único lote de dados.
  • Obtenha as métricas de avaliação (loss e accuracy) para os dados de treinamento en_x, de_x e de_y.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

n_epochs, bsize = 3, 250

for ei in range(n_epochs):
  for i in range(0,data_size,bsize):
    en_x = sents2seqs('source', en_text[i:i+bsize], onehot=True, reverse=True)
    de_xy = sents2seqs('target', fr_text[i:i+bsize], onehot=True)
    # Separate the decoder inputs from de_xy
    de_x = ____[:,____,:]
    # Separate the decoder outputs from de_xy
    de_y = ____[____]
    # Train the model on a single batch of data    
    nmt_tf.____([____,____], ____)    
    # Obtain the eval metrics for the training data
    res = _____.evaluate([____,____], ____, batch_size=bsize, verbose=0)
    print("{} => Train Loss:{}, Train Acc: {}".format(ei+1,res[0], res[1]*100.0))  
Editar e executar o código