對熟悉的模型做批次正規化
還記得本章第一個練習裡你訓練過的 digits 資料集嗎?
那是一個多類別分類問題,你用 softmax 和輸出層中 10 個神經元來解決。
現在你要建立一個更深的模型:包含 3 個隱藏層,每層各有 50 個神經元,並在各層之間加入批次正規化。
kernel_initializer 參數可用來以類似的方式初始化權重。
本練習屬於課程
Keras 深度學習入門
練習說明
- 從
tensorflow.keras的 layers 匯入BatchNormalization。 - 建立深層網路模型,為每個隱藏層使用 50 個神經元,並在各層之間加入批次正規化。
- 使用隨機梯度下降
sgd作為最佳化器來編譯模型。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Import batch normalization from keras layers
from tensorflow.____.____ import ____
# Build your deep network
batchnorm_model = ____
batchnorm_model.add(Dense(____, input_shape=(64,), activation='relu', kernel_initializer='normal'))
batchnorm_model.add(____)
batchnorm_model.add(Dense(____, activation='relu', kernel_initializer='normal'))
batchnorm_model.add(____)
batchnorm_model.add(Dense(____, activation='relu', kernel_initializer='normal'))
batchnorm_model.add(____)
batchnorm_model.add(Dense(10, activation='softmax', kernel_initializer='normal'))
# Compile your model with sgd
batchnorm_model.compile(optimizer=____, loss='categorical_crossentropy', metrics=['accuracy'])