回呼的組合拳
深度學習模型常常需要很長的訓練時間,特別是當你使用更深的架構和更大的資料集時。每當模型表現變好就儲存,以及在不再進步時提早停止,能讓你不必太糾結要訓練多少個 epoch。你也可以在任何時候還原已儲存的模型,從中斷處繼續訓練。
模型訓練與驗證資料已在工作環境中提供為 X_train、X_test、y_train 和 y_test。
使用 EarlyStopping() 與 ModelCheckpoint() 回呼,然後就讓電腦自己忙,你可以去享用一整罐餅乾!
本練習屬於課程
Keras 深度學習入門
練習說明
- 從
tensorflow.keras匯入EarlyStopping與ModelCheckpoint兩個回呼。 - 建立
monitor_val_acc作為EarlyStopping回呼,監控'val_accuracy',patience設為 3 個 epoch。 - 建立
model_checkpoint作為ModelCheckpoint回呼,將最佳模型儲存為best_banknote_model.hdf5。 - 訓練模型時提供包含上述回呼的「清單」,並使用
X_test與y_test作為驗證資料。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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 = (____, ____))