手書き数字を学習する
ここでは scikit-learn に含まれるサンプルデータセットである digits データセットに対してモデルを構築します。digits データセットは、0〜9 の手書き数字(8×8 ピクセル)で構成されています。
データセットはすでに X_train, y_train, X_test, y_test に分割されており、30% がテストデータとして使われます。ラベルはすでにワンホットエンコード済みなので、Keras の to_categorical() 関数を使う必要はありません。
それでは、この新しい model を構築しましょう!
この演習はコースの一部です
Kerasで学ぶIntroduction to Deep Learning
演習の手順
- 8×8 の数字画像の総画素数を入力とする
input_shapeを指定し、16 ユニットのDenseレイヤーをrelu活性化で追加します。 - 出力が 10 の
Denseレイヤーをsoftmax活性化で追加します。 - 最適化手法に
adam、損失にcategorical_crossentropy、評価指標にaccuracyを指定してモデルをコンパイルします。 X_trainに対して予測を行い、モデルが動作することを確認します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Instantiate a Sequential model
model = Sequential()
# Input and hidden layer with input_shape, 16 neurons, and relu
model.add(Dense(____, input_shape = (____,), activation = ____))
# Output layer with 10 neurons (one per digit) and softmax
model.____(____)
# Compile your model
model.____(optimizer = ____, loss = ____, metrics = [____])
# Test if your model is well assembled by predicting before training
print(model.predict(____))