Doğrulama ile modeli eğitme
Burada, sinirsel makine çevirmeni modelini bir doğrulama adımıyla nasıl eğiteceğini öğreneceksin.
Geçen bölümde oluşturduğun nmt modeli sana sağlandı. Ayrıca, modeli Udacity Github Repo üzerinden alınan İngilizce ve Fransızca cümleler üzerinde eğiteceksin. Önceki egzersizden eğitim İngilizce metni (tr_en) ve Fransızca metni (tf_fr) ile doğrulama İngilizce metni (v_en) ve Fransızca metni (v_fr) verildi.
Modeli eğitmek biraz zaman alır; bu yüzden kodunun çalışması normalden biraz daha uzun sürecek.
Bu egzersiz
Keras ile Machine Translation
kursunun bir parçasıdırEgzersiz talimatları
v_envev_frdeğerlerinisents2seqsfonksiyonunu kullanarak dönüştürüp doğrulama verisini oluştur.sents2seqsfonksiyonunu kullanarak düzgün dönüştürülmüş bir girdi ve çıktı yığını (batch) al.nmtmodelini tek bir yığın üzerinde eğitmek için girdiler (en_x) ve çıktıları (de_y) kullan.valid_sizedeğerinibatch_sizeolarak ayarlayarakv_en_xvev_de_yilenmtmodelini değerlendir ve doğrulama doğruluğunu elde et.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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))