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, kursun bir parçasıdır
Keras ile Machine Translation
Egzersiz 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ı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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))