MulaiMulai sekarang secara gratis

Melatih model dengan validasi

Di sini Anda akan mempelajari cara melatih model neural machine translator dengan langkah validasi.

Anda disediakan model nmt yang Anda buat pada bab sebelumnya. Selain itu, Anda akan melatih model pada kalimat bahasa Inggris dan Prancis yang diperoleh dari Udacity Github Repo. Anda telah disediakan teks pelatihan bahasa Inggris (tr_en) dan Prancis (tf_fr) serta teks validasi bahasa Inggris (v_en) dan Prancis (v_fr) dari latihan sebelumnya.

Melatih model membutuhkan sedikit waktu, jadi kode Anda akan berjalan sedikit lebih lama.

Latihan ini adalah bagian dari kursus

Penerjemahan Mesin dengan Keras

Lihat Kursus

Petunjuk latihan

  • Buat data validasi dengan mentransformasikan v_en dan v_fr menggunakan fungsi sents2seqs.
  • Dapatkan satu batch masukan dan keluaran yang sudah ditransformasikan dengan benar menggunakan fungsi sents2seqs.
  • Gunakan masukan (en_x) dan keluaran (de_y) untuk melatih nmt pada satu batch.
  • Gunakan v_en_x dan v_de_y dengan valid_size sebagai batch_size untuk mengevaluasi model nmt dan memperoleh akurasi validasi.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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