ホームページ >テクノロジー周辺機器 >IT業界 >ケラスへの初心者のガイド:30分での数字認識

ケラスへの初心者のガイド:30分での数字認識

Joseph Gordon-Levitt
Joseph Gordon-Levittオリジナル
2025-02-10 15:27:16298ブラウズ

この記事では、畳み込みニューラルネットワーク(CNN)とMNISTデータセットを使用して、手書きの数字認識のためのKERASモデルの構築を詳述しています。 明確さと改善された流れのためにそれを言い換えましょう。

A Beginner's Guide to Keras: Digit Recognition in 30 Minutes

keras を使用した手書きの桁認識器を構築します このチュートリアルは、建物とトレーニングのニューラルネットワークを簡素化する高レベルのAPIであるPythonのKerasライブラリを使用して、手書きの数字を認識するモデルを作成することを示しています。畳み込みニューラルネットワーク(CNNS)と広く使用されているMnistデータセットの力を活用します。

アプローチを理解する

私たちのモデルは、画像分類のための特に効率的なアーキテクチャであるCNNを採用しています。従来のニューラルネットワークとは異なり、CNNSは3Dアレイ(X、Y座標、色)のデータを処理し、画像データに最適です。 60,000のトレーニングと手書きの数字の10,000のテスト例を含むMNISTデータセットは、トレーニングに必要なラベル付きデータを提供します。

人工ニューラルネットワーク(ANNS)およびCNNS

ANNは、入力データを隠されたレイヤーを介して出力に変換する数学モデルであり、各レイヤーは確率を表します。 トレーニングには、エラーに基づいてウェイトとバイアスを調整し、ネットワークがパターンを学習できるようにします。 CNNSは、画像処理に大きな利点を提供します。それらの3Dアレイ構造は、各隠されたレイヤーノードが小さな入力領域のみに接続し、従来のANNと比較して効率を劇的に増加させることを意味します。 重要なCNN層には、畳み込み層(機能抽出)、プーリングレイヤー(機能削減)、平らな層(次元低減)、および最終的な分類層が含まれます。

A Beginner's Guide to Keras: Digit Recognition in 30 Minutes mnistデータセットの操作

A Beginner's Guide to Keras: Digit Recognition in 30 Minutes MnistデータセットはKeras内で容易に入手できます。 トレーニングとテストのデータを

を使用してロードします。 サンプルの数字を視覚化すると、データ構造の理解に役立ちます:

mnist.load_data()トレーニングとテストセットには、それぞれ寸法(60000、28、28)と(10000、28、28)があり、28x28ピクセルの画像を示しています。

<code class="language-python">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()</code>
データ前処理

A Beginner's Guide to Keras: Digit Recognition in 30 Minutes

モデルの作成の前に、データは事前​​に処理する必要があります:

  1. 再形成:画像は(m x n x 1)形式に再形成されます。 .reshape()
  2. 正規化:
  3. ピクセル値(0-255)は、255で割ることにより0-1に正規化されます。 ワンホットエンコード:
  4. 依存変数(
  5. )は、モデルの出力との互換性のためにを使用してバイナリクラスマトリックスに変換されます。y_train> y_test to_categorical()
モデルの設計とトレーニング
<code class="language-python">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()</code>

CNNモデルは連続的に構築されています:

畳み込みレイヤー:
    入力画像から特徴を抽出します。
  1. プーリングレイヤー:
  2. 寸法と計算コストを削減します。
  3. ドロップアウトレイヤー:
  4. 過剰フィッティングを防ぎます。
  5. フラットンレイヤー:
  6. 多次元出力を1D配列に変換します。
  7. 密集した層:最終的な分類を実行します。
  8. モデルは、
  9. 損失(整数ラベルの場合)、Adam Optimizer、および精度をメトリックとしてコンパイルします。 トレーニングは、
を使用して実行され、エポックとバッチサイズを指定します。訓練されたモデルは、後で使用するために保存されます
<code class="language-python">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)</code>
カスタムイメージを使用した

sparse_categorical_crossentropyテスト.fit()

<code class="language-python">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)
])</code>
モデルをテストするには、カスタム手書きの数字画像をロードし、プリプロースし(グレースケールに変換し、変換し、正規化)、保存されたモデルをロードし、分類を取得するために

を使用して使用します。

.predict()

結論
<code class="language-python">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")</code>

A Beginner's Guide to Keras: Digit Recognition in 30 Minutes このチュートリアルは、KerasとCNNSを使用して手書きの数字認識モデルの構築に関する基本的な理解を提供します。 高精度(例:&gt; 99%)を達成しながら、モデルパラメーターのチューニング、データの増強、およびより高度なCNNアーキテクチャの調査により、さらなる改善が可能です。 提供されたFAQは、関連する概念に関するさらなる洞察を提供します。

以上がケラスへの初心者のガイド:30分での数字認識の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。