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

การแบ่งข้อมูลเป็นชุดฝึกและชุดตรวจสอบ

การใช้เฉพาะข้อมูลฝึก (training data) โดยไม่มีชุดข้อมูลตรวจสอบ (validation dataset) อาจนำไปสู่ปัญหาที่เรียกว่า overfitting เมื่อเกิด overfitting โมเดลจะทำนายข้อมูลใน training set ได้ดีมาก แต่กลับทำได้แย่มากกับข้อมูลที่ไม่เคยเห็นมาก่อน ซึ่งหมายความว่าโมเดลนั้นไม่มีประโยชน์เท่าที่ควร เนื่องจากไม่สามารถ generalize ได้ วิธีหนึ่งที่ช่วยแก้ปัญหานี้คือการใช้ชุดข้อมูลตรวจสอบ

ในแบบฝึกหัดนี้ คุณจะสร้างชุดข้อมูลฝึกและชุดข้อมูลตรวจสอบจากชุดข้อมูลที่มีอยู่ (ได้แก่ en_text ที่มีประโยคภาษาอังกฤษ 1,000 ประโยค และ fr_text ที่มีประโยคภาษาฝรั่งเศส 1,000 ประโยค) โดยใช้ 80% ของชุดข้อมูลเป็น training data และอีก 20% เป็น validation data

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

Machine Translation ด้วย Keras

ดูคอร์ส

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

  • กำหนดลำดับของ index โดยใช้ np.arange() ที่เริ่มต้นจาก 0 และมีขนาดเท่ากับ en_text
  • กำหนด valid_inds เป็น index สุดท้ายจำนวน valid_size ตัวจากลำดับ index ที่สร้างไว้
  • กำหนด tr_en และ tf_fr ซึ่งเก็บประโยคที่ตำแหน่ง index ใน train_inds จาก list en_text และ fr_text ตามลำดับ
  • กำหนด v_en และ v_fr ซึ่งเก็บประโยคที่ตำแหน่ง index ใน valid_inds จาก list en_text และ fr_text ตามลำดับ

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

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

train_size, valid_size = 800, 200
# Define a sequence of indices from 0 to len(en_text)
inds = ____.____(len(_____))
np.random.shuffle(inds)
train_inds = inds[:train_size]
# Define valid_inds: last valid_size indices
valid_inds = inds[____]
# Define tr_en (train EN sentences) and tr_fr (train FR sentences)
tr_en = [en_text[____] for ti in ____]
tr_fr = [____ for ti in ____]
# Define v_en (valid EN sentences) and v_fr (valid FR sentences)
v_en = [____ for vi in valid_inds]
v_fr = [____ for vi in ____]
print('Training (EN):\n', tr_en[:3], '\nTraining (FR):\n', tr_fr[:3])
print('\nValid (EN):\n', v_en[:3], '\nValid (FR):\n', v_fr[:3])
แก้ไขและรันโค้ด