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

ฝึกโมเดลพร้อมขั้นตอนการตรวจสอบความถูกต้อง

ในแบบฝึกหัดนี้ คุณจะได้เรียนรู้วิธีฝึกโมเดลแปลภาษาด้วยโครงข่ายประสาทเทียม พร้อมขั้นตอนการตรวจสอบความถูกต้อง (validation)

โมเดล nmt ที่สร้างไว้ในบทก่อนหน้าถูกเตรียมไว้ให้แล้ว คุณจะฝึกโมเดลนี้บนประโยคภาษาอังกฤษและภาษาฝรั่งเศสที่ได้จาก Udacity Github Repo โดยมีข้อความภาษาอังกฤษสำหรับฝึก (tr_en) และภาษาฝรั่งเศส (tf_fr) รวมถึงข้อความสำหรับตรวจสอบ (v_en) และ (v_fr) จากแบบฝึกหัดก่อนหน้า

การฝึกโมเดลใช้เวลาพอสมควร โค้ดอาจใช้เวลารันนานกว่าปกติเล็กน้อย

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

Machine Translation ด้วย Keras

ดูคอร์ส

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

  • สร้างข้อมูล validation โดยแปลง v_en และ v_fr ด้วยฟังก์ชัน sents2seqs
  • แปลง batch ของ inputs และ outputs ให้อยู่ในรูปแบบที่ถูกต้องโดยใช้ฟังก์ชัน sents2seqs
  • ใช้ inputs (en_x) และ outputs (de_y) เพื่อฝึกโมเดล nmt บน batch เดียว
  • ใช้ v_en_x และ v_de_y พร้อมกับ valid_size เป็น batch_size เพื่อประเมินโมเดล nmt และดูค่าความแม่นยำของ validation

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

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

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