おなじみのモデルにバッチ正規化を適用する
この章の最初の演習で学習した digits データセット を覚えていますか?
出力層で softmax と 10 個のニューロンを使って解いた、多クラス分類の問題でした。
ここでは、各 50 ニューロンの隠れ層を3層持つ、より深いモデルを構築し、層の間にバッチ正規化を挟みます。
kernel_initializer パラメータは、同様の方法で重みを初期化するために使われます。
この演習はコースの一部です
Kerasで学ぶIntroduction to Deep Learning
演習の手順
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'])