Modeli eğitme
Bu egzersizde daha önce uyguladığın modeli eğiteceksin. Google'ın encoder-decoder tabanlı makine çeviri modelinin 2-4 gün eğitildiğini biliyor muydun?
Bu egzersizde modeli eğitmek için 1500 cümleden oluşan küçük bir veri kümesi (yani en_text ve fr_text) kullanacaksın. Bu miktar iyi bir performans görmek için pek yeterli olmayacak, fakat yöntem aynı kalacak. Daha uzun süre daha fazla veriyle eğitmek meselesi. Sana ayrıca nmt modeli ve daha önce uyguladığın sents2seqs() fonksiyonu verildi. Bu egzersizde daha iyi performans için kodlayıcı metnini ters çevireceksin. Burada en_x kodlayıcı girdisini, de_x ise kod çözücü girdisini ifade eder.
Bu egzersiz
Keras ile Machine Translation
kursunun bir parçasıdırEgzersiz talimatları
sents2seqs()fonksiyonunu kullanarak tek bir kodlayıcı girdi yığını (indeksi'deni+bsize'a kadar olan İngilizce cümleler) al. Girdiler ters çevrilmeli ve onehot kodlanmalı.sents2seqs()fonksiyonunu kullanarak tek bir kod çözücü çıktı yığını (indeksi'deni+bsize'a kadar olan Fransızca cümleler) al. Girdiler onehot kodlanmalı.en_xvede_yiçeren tek bir veri yığını üzerinde modeli eğit.- Modeli
bsizedeğerinde birbatch_sizeile değerlendirereken_xvede_yiçin değerlendirme metriklerini elde et.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
n_epochs, bsize = 3, 250
for ei in range(n_epochs):
for i in range(0,data_size,bsize):
# Get a single batch of encoder inputs
en_x = ____('source', ____, onehot=____, reverse=____)
# Get a single batch of decoder outputs
de_y = sents2seqs('target', fr_text[____], onehot=____)
# Train the model on a single batch of data
nmt.____(____, ____)
# Obtain the eval metrics for the training data
res = nmt.____(____, de_y, batch_size=____, verbose=0)
print("{} => Train Loss:{}, Train Acc: {}".format(ei+1,res[0], res[1]*100.0))