Melatih model
Tahukah Anda bahwa pada tahun 2017, Google Translate melayani lebih dari 500 juta pengguna setiap hari?
Di sini, Anda akan melatih model Teacher Forcing pertama Anda. Teacher Forcing umum digunakan pada model sequence-to-sequence seperti penerjemah mesin neural Anda untuk mencapai kinerja yang lebih baik.
Anda akan disediakan fungsi sents2seqs(), kalimat bahasa Inggris en_text, dan kalimat bahasa Prancis fr_text.
Latihan ini adalah bagian dari kursus
Penerjemahan Mesin dengan Keras
Petunjuk latihan
- Dapatkan masukan decoder yang berisi urutan kata bahasa Prancis dalam bentuk one-hot encoding (kecuali kata terakhir pada setiap urutan).
- Dapatkan keluaran decoder yang berisi urutan kata bahasa Prancis dalam bentuk one-hot encoding (kecuali kata pertama pada setiap urutan).
- Latih model pada satu batch data.
- Peroleh metrik evaluasi (loss dan accuracy) untuk data pelatihan
en_x,de_x, dande_y.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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))