CNNモデルを作る
KerasでCNNモデルを作るのは、これまでこのコースで作ってきたモデルと比べても、それほど難しくありません。必要なのは畳み込み層を使うことだけです。
ここでは、MNIST 手書き数字データセットを分類する、浅い畳み込み model を作成します。オートエンコーダでノイズ除去したのと同じデータです。画像は 28 x 28 ピクセルで、白黒画像のためチャンネルは1つだけです。
それでは、この小さな畳み込みモデルを作っていきましょう!
この演習はコースの一部です
Kerasで学ぶIntroduction to Deep Learning
演習の手順
Conv2DとFlattenレイヤーをインポートし、モデルを作成します。- 最初の畳み込み層を追加します。フィルターは32個、サイズは3x3、
input_shapeには対応する3次元のタプルを指定します。 - 2つ目の畳み込み層を追加します。フィルターは16個、サイズは3x3、活性化関数はreluにします。
- 直前の層の出力をフラット化して、一次元のベクトルにします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import the Conv2D and Flatten layers and instantiate model
from tensorflow.keras.____ import ____,____
model = ____
# Add a convolutional layer of 32 filters of size 3x3
model.add(Conv2D(____, kernel_size = ____, input_shape = (____, ____, 1), activation = 'relu'))
# Add a convolutional layer of 16 filters of size 3x3
model.add(____(____, ____ = ____, activation = ____))
# Flatten the previous layer output
model.add(____)
# Add as many outputs as classes with softmax activation
model.add(Dense(10, activation = 'softmax'))