手書き数字認識は、機械学習の分野でよく知られています。ここでは、Pythonを使用して手書き数字認識モデルを構築する方法を紹介します。
必要なライブラリのインストール
手書き数字認識モデルを構築するためには、以下のライブラリをインストールする必要があります。
- TensorFlow
- Keras
- NumPy
- Matplotlib
これらのライブラリは、pipを使用してインストールできます。
データの準備
手書き数字認識モデルを構築するためには、MNISTと呼ばれる手書き数字のデータセットが必要です。MNISTは、以下のコマンドを使用してダウンロードできます。
from tensorflow.keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
モデルの構築
手書き数字認識モデルを構築するためには、以下のコードを使用します。
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPooling2D
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(10, activation='softmax'))
このコードでは、2次元の畳み込みレイヤーとプーリングレイヤーを追加し、Flattenレイヤーで1次元に変換し、Denseレイヤーで出力を生成します。
モデルのコンパイルとトレーニング
モデルをコンパイルするためには、以下のコードを使用します。
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
トレーニングを開始するためには、以下のコードを使用します。
model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test))
モデルの評価
トレーニングが完了したら、モデルを評価することができます。以下のコードを使用して、テストデータに対するモデルの精度を計算します。
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print('\nTest accuracy:', test_acc)
以上で、Pythonを使用して手書き数字認識モデルを構築する方法を紹介しました。