Doğrulamayla modeli eğitme
Burada modeli Teacher Forcing kullanarak eğitecek ve ayrıca bir doğrulama adımı gerçekleştireceksin. Modeli birden çok epoch ve birden çok yineleme için eğiteceksin. Ardından her epoch sonunda doğrulama adımını çalıştırıp sonuçları alacaksın.
Bunun için sana en_text (İngilizce cümleler), fr_text (Fransızca cümleler), sents2seqs() fonksiyonu ve nmt_tf (derlenmiş model) verildi. Ayrıca önceden yüklenmiş tr_en ve tr_fr (eğitim verisi) ile v_en ve v_fr (doğrulama verisi) de mevcut.
Bu egzersiz, kursun bir parçasıdır
Keras ile Machine Translation
Egzersiz talimatları
de_xy'den decoder girdilerini (son kelime hariç tümü) ve çıktılarını (ilk kelime hariç tümü) çıkar.- Modeli tek bir veri yığını (batch) üzerinde eğit.
- Doğrulama verilerinden, eğitim verisinde yaptığınla aynı şekilde decoder girdileri ve çıktıları oluştur.
- Doğrulama veri kümesi üzerinde modeli değerlendirerek doğrulama kaybını ve doğruluğu elde et.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
for ei in range(n_epochs):
for i in range(0,train_size,bsize):
en_x = sents2seqs('source', tr_en[i:i+bsize], onehot=True, reverse=True)
de_xy = sents2seqs('target', tr_fr[i:i+bsize], onehot=True)
# Create a single batch of decoder inputs and outputs
de_x, de_y = ____[:,____,:], de_xy[:,____,:]
# Train the model on a single batch of data
nmt_tf.____([____,____], de_y)
v_en_x = sents2seqs('source', v_en, onehot=True, reverse=True)
# Create a single batch of validation decoder inputs and outputs
v_de_xy = ____('target', ____, onehot=____)
v_de_x, v_de_y = ____[____], v_de_xy[____]
# Evaluate the trained model on the validation data
res = nmt_tf.evaluate([____,____], ____, batch_size=valid_size, verbose=0)
print("{} => Loss:{}, Val Acc: {}".format(ei+1,res[0], res[1]*100.0))