BaşlayınÜcretsiz Başlayın

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ır
Kursu Görüntüle

Egzersiz talimatları

  • v_en ve v_fr değerlerini sents2seqs fonksiyonunu kullanarak dönüştürüp doğrulama verisini oluştur.
  • sents2seqs fonksiyonunu kullanarak düzgün dönüştürülmüş bir girdi ve çıktı yığını (batch) al.
  • nmt modelini tek bir yığın üzerinde eğitmek için girdiler (en_x) ve çıktıları (de_y) kullan.
  • valid_size değerini batch_size olarak ayarlayarak v_en_x ve v_de_y ile nmt modelini 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))
Kodu Düzenle ve Çalıştır