เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การเทรนโมเดลพร้อม validation

ในแบบฝึกหัดนี้ คุณจะเทรนโมเดลโดยใช้ Teacher Forcing พร้อมกับทำขั้นตอน validation ด้วย โดยจะเทรนโมเดลหลาย epoch และหลาย iteration จากนั้นเมื่อสิ้นสุดแต่ละ epoch จะรันขั้นตอน validation และดูผลลัพธ์ที่ได้

สำหรับแบบฝึกหัดนี้ ได้เตรียม en_text (ประโยคภาษาอังกฤษ), fr_text (ประโยคภาษาฝรั่งเศส), ฟังก์ชัน sents2seqs() และ nmt_tf (โมเดลที่คอมไพล์แล้ว) ไว้ให้แล้ว นอกจากนี้ยังโหลด tr_en และ tr_fr (ข้อมูลสำหรับเทรน) รวมถึง v_en และ v_fr (ข้อมูลสำหรับ validation) ไว้เรียบร้อยแล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Machine Translation ด้วย Keras

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ดึง decoder inputs (คำทุกคำยกเว้นคำสุดท้าย) และ outputs (คำทุกคำยกเว้นคำแรก) จาก de_xy
  • เทรนโมเดลบนข้อมูล batch เดียว
  • สร้าง decoder inputs และ outputs จากข้อมูล validation ในลักษณะเดียวกับที่ทำกับข้อมูลเทรน
  • ประเมินโมเดลบนชุดข้อมูล validation เพื่อรับค่า validation loss และค่าความแม่นยำ

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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))
แก้ไขและรันโค้ด