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

ผลของ Batch Normalization

Batch normalization ช่วยเพิ่มความเร็วในการเรียนรู้ของโมเดล และทำให้เส้นโค้งการเรียนรู้มีเสถียรภาพมากขึ้น มาดูกันว่าโมเดลสองตัวที่เหมือนกันทุกประการ โดยตัวหนึ่งใช้ batch normalization และอีกตัวไม่ใช้ จะแตกต่างกันอย่างไร

โมเดล batchnorm_model ที่สร้างไว้ก่อนหน้านี้ถูกโหลดไว้ให้แล้ว พร้อมกับโมเดลที่เหมือนกันทุกประการแต่ไม่มี batch normalization ชื่อว่า standard_model สามารถตรวจสอบ summary() ของทั้งสองโมเดลได้ในคอนโซล นอกจากนี้ยังมี X_train, y_train, X_test และ y_test โหลดไว้ให้พร้อมสำหรับการฝึกทั้งสองโมเดล

จะเปรียบเทียบเส้นโค้งการเรียนรู้ด้านความแม่นยำของทั้งสองโมเดลโดยใช้ฟังก์ชัน compare_histories_acc()

สามารถดูโค้ดของฟังก์ชันได้โดยพิมพ์ show_code(compare_histories_acc) ในคอนโซล

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

Deep Learning เบื้องต้นด้วย Keras

ดูคอร์ส

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

  • ฝึก standard_model เป็นจำนวน 10 epochs โดยส่งข้อมูล train และ validation เข้าไป แล้วเก็บ history ไว้ใน h1_callback
  • ฝึก batchnorm_model เป็นจำนวน 10 epochs โดยส่งข้อมูล train และ validation เข้าไป แล้วเก็บ history ไว้ใน h2_callback
  • เรียกใช้ compare_histories_acc โดยส่ง h1_callback และ h2_callback เข้าไป

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

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

# Train your standard model, storing its history callback
h1_callback = standard_model.fit(____, ____, validation_data=(____,____), epochs=____, verbose=0)

# Train the batch normalized model you recently built, store its history callback
h2_callback = batchnorm_model.fit(____, ____, validation_data=____, epochs=____, verbose=0)

# Call compare_histories_acc passing in both model histories
compare_histories_acc(____, ____)
แก้ไขและรันโค้ด