この記事では、畳み込みニューラルネットワーク(CNN)とMNISTデータセットを使用して、手書きの数字認識のためのKERASモデルの構築を詳述しています。 明確さと改善された流れのためにそれを言い換えましょう。
keras を使用した手書きの桁認識器を構築します このチュートリアルは、建物とトレーニングのニューラルネットワークを簡素化する高レベルのAPIであるPythonのKerasライブラリを使用して、手書きの数字を認識するモデルを作成することを示しています。畳み込みニューラルネットワーク(CNNS)と広く使用されているMnistデータセットの力を活用します。
アプローチを理解する
私たちのモデルは、画像分類のための特に効率的なアーキテクチャであるCNNを採用しています。従来のニューラルネットワークとは異なり、CNNSは3Dアレイ(X、Y座標、色)のデータを処理し、画像データに最適です。 60,000のトレーニングと手書きの数字の10,000のテスト例を含むMNISTデータセットは、トレーニングに必要なラベル付きデータを提供します。
人工ニューラルネットワーク(ANNS)およびCNNSANNは、入力データを隠されたレイヤーを介して出力に変換する数学モデルであり、各レイヤーは確率を表します。 トレーニングには、エラーに基づいてウェイトとバイアスを調整し、ネットワークがパターンを学習できるようにします。 CNNSは、画像処理に大きな利点を提供します。それらの3Dアレイ構造は、各隠されたレイヤーノードが小さな入力領域のみに接続し、従来のANNと比較して効率を劇的に増加させることを意味します。 重要なCNN層には、畳み込み層(機能抽出)、プーリングレイヤー(機能削減)、平らな層(次元低減)、および最終的な分類層が含まれます。
mnistデータセットの操作
MnistデータセットはKeras内で容易に入手できます。 トレーニングとテストのデータを
mnist.load_data()
トレーニングとテストセットには、それぞれ寸法(60000、28、28)と(10000、28、28)があり、28x28ピクセルの画像を示しています。
from keras.datasets import mnist import matplotlib.pyplot as plt (x_train, y_train), (x_test, y_test) = mnist.load_data() image_index = 35 plt.imshow(x_train[image_index], cmap='Greys') plt.show()
.reshape()
y_train
>
y_test
to_categorical()
from keras.datasets import mnist import matplotlib.pyplot as plt (x_train, y_train), (x_test, y_test) = mnist.load_data() image_index = 35 plt.imshow(x_train[image_index], cmap='Greys') plt.show()
CNNモデルは連続的に構築されています:
畳み込みレイヤー:img_rows, img_cols = 28, 28 x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1) / 255 x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1) / 255 y_train = to_categorical(y_train, num_classes=10) y_test = to_categorical(y_test, num_classes=10)
sparse_categorical_crossentropy
テスト.fit()
from keras.models import Sequential from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D model = Sequential([ Conv2D(32, (3, 3), activation='relu', input_shape=(img_rows, img_cols, 1)), Conv2D(64, (3, 3), activation='relu'), MaxPooling2D((2, 2)), Dropout(0.25), Flatten(), Dense(128, activation='relu'), Dropout(0.5), Dense(10, activation='softmax') # 10 output classes (digits 0-9) ])
を使用して使用します。
.predict()
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(x_train, y_train, batch_size=128, epochs=10, validation_data=(x_test, y_test)) model.save("test_model.h5")
このチュートリアルは、KerasとCNNSを使用して手書きの数字認識モデルの構築に関する基本的な理解を提供します。 高精度(例:> 99%)を達成しながら、モデルパラメーターのチューニング、データの増強、およびより高度なCNNアーキテクチャの調査により、さらなる改善が可能です。 提供されたFAQは、関連する概念に関するさらなる洞察を提供します。
以上がケラスへの初心者のガイド:30分での数字認識の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。