始める無料で始める

手書き数字を学習する

ここでは scikit-learn に含まれるサンプルデータセットである digits データセットに対してモデルを構築します。digits データセットは、0〜9 の手書き数字(8×8 ピクセル)で構成されています。

画像から 10 個のいずれの数字かを判別したいので、ここでは多クラス分類を扱います。

データセットはすでに 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(____))
コードを編集して実行