Treinar o modelo
Você sabia que, em 2017, o Google Tradutor ajudou mais de 500 milhões de pessoas por dia?
Aqui, você vai treinar seu primeiro modelo Teacher Forced. O Teacher Forcing é geralmente usado em modelos sequência a sequência, como o seu tradutor automático neural, para obter um desempenho melhor.
Você vai ter acesso à função “ sents2seqs()
”, frases em inglês en_text
e frases em francês fr_text
.
Este exercício faz parte do curso
Tradução automática com Keras
Instruções do exercício
- Pega a entrada do decodificador que tem as sequências codificadas em onehot das palavras em francês (menos a última palavra de cada sequência).
- Pega a saída do decodificador que tem as sequências codificadas em onehot das palavras em francês (menos a primeira palavra de cada sequência).
- Treine o modelo em um único lote de dados.
- Pega as métricas de avaliação (perda e precisão) para os dados de treinamento
en_x
,de_x
ede_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))