การใช้ callbacks หลายตัวร่วมกัน
โมเดล deep learning บางตัวใช้เวลาฝึกนานมาก โดยเฉพาะเมื่อโครงสร้างโมเดลลึกขึ้นหรือชุดข้อมูลมีขนาดใหญ่ขึ้น การบันทึกโมเดลทุกครั้งที่ประสิทธิภาพดีขึ้น และหยุดการฝึกเมื่อประสิทธิภาพไม่ดีขึ้นแล้ว ช่วยให้ไม่ต้องกังวลเรื่องการเลือกจำนวน epoch นอกจากนี้ยังสามารถโหลดโมเดลที่บันทึกไว้กลับมาและฝึกต่อจากจุดที่หยุดได้ตลอดเวลา
ข้อมูลสำหรับฝึกและ validation พร้อมใช้งานใน workspace แล้วในชื่อ X_train, X_test, y_train และ y_test
ใช้ callback EarlyStopping() และ ModelCheckpoint() เพื่อให้โมเดลทำงานเองได้ — จะได้มีเวลาพักผ่อนในระหว่างรอ!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning เบื้องต้นด้วย Keras
คำแนะนำการฝึกหัด
- Import callback ทั้ง
EarlyStoppingและModelCheckpointจากtensorflow.keras - สร้าง
monitor_val_accเป็น callbackEarlyStoppingที่ monitor'val_accuracy'โดยกำหนดpatienceไว้ที่ 3 epoch - สร้าง
model_checkpointเป็น callbackModelCheckpointและบันทึกโมเดลที่ดีที่สุดในชื่อbest_banknote_model.hdf5 - Fit โมเดลโดยส่ง list ของ callback ที่กำหนดไว้ พร้อมกับ
X_testและy_testเป็น validation data
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import the EarlyStopping and ModelCheckpoint callbacks
from tensorflow.____.____ import ____, ____
# Early stop on validation accuracy
monitor_val_acc = ____(monitor = ____, patience = ____)
# Save the best model as best_banknote_model.hdf5
model_checkpoint = ____(____, save_best_only = True)
# Fit your model for a stupid amount of epochs
h_callback = model.fit(X_train, y_train,
epochs = 1000000000000,
callbacks = [____, ____],
validation_data = (____, ____))