MulaiMulai sekarang secara gratis

Melatih model dengan validasi

Di sini Anda akan melatih model menggunakan Teacher Forcing dan juga melakukan langkah validasi. Anda akan melatih model selama beberapa epoch dan beberapa iterasi. Lalu pada akhir setiap epoch, Anda akan menjalankan langkah validasi dan memperoleh hasilnya.

Untuk itu, Anda telah disediakan en_text (kalimat bahasa Inggris), fr_text (kalimat bahasa Prancis), fungsi sents2seqs() dan nmt_tf (model yang sudah dikompilasi). Anda juga sudah memiliki tr_en dan tr_fr (data pelatihan) serta v_en dan v_fr (data validasi) yang telah dimuat.

Latihan ini adalah bagian dari kursus

Penerjemahan Mesin dengan Keras

Lihat Kursus

Petunjuk latihan

  • Ekstrak masukan decoder (semua kata kecuali yang terakhir) dan keluaran (semua kata kecuali yang pertama) dari de_xy.
  • Latih model pada satu batch data.
  • Buat masukan dan keluaran decoder dari data validasi dengan cara yang sama seperti pada data pelatihan.
  • Evaluasi model pada himpunan data validasi untuk memperoleh loss validasi dan akurasi.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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))
Edit dan Jalankan Kode