AIエンジニアを志すヲタク

ヲタク(アニメ,オーディオ)である管理人が深層学習に関する技術を投稿していく

pythonで手書き数字認識AIを作る(Part.1)

ヲタクエンジニアのBayashiです。

今回は、pythonで手書き数字認識を行うAIを作っていきたいと思います。
実行環境はgoogle colabを使います。 colabはgoogleのアカウントがあればブラウザ上でpythonを実行することができます。

使用するライブラリ

  • Tensorflow (Keras)
  • numpy
  • matplotlib

使用する環境

colab.research.google.com

必要なライブラリをインポート

まずは必要なライブラリをインポートします。

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.utils import to_categorical
import numpy as np
import matplotlib.pyplot as plt

手書き数字文字の画像データを読み込む

今回は手書き数字の画像データとしてmnistを使用します。 以下のコードでmnistの画像をnumpy行列として読み込むことができます。

(X_train, y_train) ,(X_test, y_test) = mnist.load_data()

X_trainとX_testに手書き数字の画像データが入っています。 y_trainとy_testに画像に対応する正解ラベルが入っています。

読み込んだデータの形状を確認

読み込んだデータの行列がどのような形状をしているのかを確認してみます。

print(X_train, y_train)
print(X_test, y_test)

(60000, 28, 28) (60000,))
(10000, 28, 28) (10000,)

のように表示されるかと思います。

X_trainは60000枚の画像が入っていて、縦横のサイズは28x28になっています。
X_testは10000枚の画像が入っていて、縦横サイズはX_trainと同様です。
y_trainはX_trainに対応する60000個の正解ラベルが入っています。
y_testはX_testに対応する10000個の正解ラベルが入っています。

画像データの可視化

読み込んだmnistの画像データを表示してみましょう。 以下のコードで上位5つの画像とラベルを表示できます。

for i in range(5):
    print('正解ラベル:', y_train[i])
    plt.imshow(X_train[i], cmap='gray')
    plt.show()

こんな感じに画像と正解ラベルが表示されれば成功。 f:id:yuta-311:20220213161502p:plain

今回はここまで。次回に続きます。

初投稿&自己紹介

初めまして。
弱小IT企業でエンジニアをやってるヲタクエンジニアのBayashiです。

時代はAI、深層学習ということで、とりあえずメモ程度にブログ書いていきます。
同じ志を持ってる人が少しでも見て共感してもらえればと。。。
3日坊主になりそうですが、、、(3日も続けば良いのだが)
まあ、ボチボチやっていきたいと思ってます。

ちなみに、アイコン画像はWaifu LabsでAI(GAN)が作成したものになります。

waifulabs.com