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) 來檢視此函式。
本練習屬於課程
Keras 深度學習入門
練習說明
- 訓練
standard_model10 個 epoch,傳入訓練與驗證資料,並將其訓練歷程儲存到h1_callback。 - 訓練
batchnorm_model10 個 epoch,傳入訓練與驗證資料,並將其訓練歷程儲存到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(____, ____)