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
Keras ile Machine Translation
kursunun bir parçasıdırEgzersiz 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ı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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))