始める無料で始める

おなじみのモデルにバッチ正規化を適用する

この章の最初の演習で学習した 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'])
コードを編集して実行