ホームページ  >  記事  >  バックエンド開発  >  Python で分類にニューラル ネットワークを使用するにはどうすればよいですか?

Python で分類にニューラル ネットワークを使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-06-04 22:40:321943ブラウズ

大量のデータを分類する場合、このデータを手動で処理するのは非常に時間がかかり、困難な作業です。この場合、分類にニューラル ネットワークを使用すると、作業を迅速かつ簡単に行うことができます。 Python には成熟した使いやすいニューラル ネットワーク ライブラリが多数あるため、Python を選択することをお勧めします。この記事では、Python で分類にニューラル ネットワークを使用する方法について説明します。

  1. ニューラル ネットワークと分類

ニューラル ネットワークを分類に使用する方法を説明する前に、ニューラル ネットワークの概念を簡単に理解する必要があります。ニューラル ネットワークは、大量の入力データと出力データ間の関係に基づいてモデルを構築し、未知のデータの特定のプロパティを予測する計算モデルです。このモデルは分類問題で非常に優れたパフォーマンスを発揮し、写真、電子メール、音声などのさまざまな種類のデータを分類するために使用できます。

分類はニューラル ネットワークの主なアプリケーションの 1 つです。分類問題の目的は、データをさまざまなカテゴリに分類することです。たとえば、画像認識では、ニューラル ネットワークはさまざまな画像を猫、犬、車などのさまざまなカテゴリに分類できます。この場合、ニューラル ネットワークは画像を入力データとして受け取り、分類を出力データとして受け取ります。分類はデータをさまざまなカテゴリに分類するプロセスであり、通常は教師あり学習手法を使用します。

  1. ニューラル ネットワーク ライブラリのインストール

Python には、TensorFlow、Keras、PyTorch など、選択できるニューラル ネットワーク ライブラリが多数あります。この記事では、Google Brain チームが開発したオープンソースの人工知能ライブラリである TensorFlow を使用します。 TensorFlow は、学習と使用が簡単な非常に人気のあるフレームワークであり、多数の機械学習プロジェクトで使用されています。

TensorFlow をインストールしていない場合は、ターミナルまたはコマンド プロンプトを開いて次のコマンドを入力します。

pip install tensorflow

インストールが完了したら、次のことができます。 TensorFlow ライブラリを使用します。

  1. データ準備

データ準備は、分類タスクの重要なステップです。データは、ニューラル ネットワークが理解できる数値形式に変換する必要があります。ここでは、非常に人気のあるデータセット MNIST を紹介します。これはデジタル画像で構成されており、各画像は数字を表します。 MNIST データセットは TensorFlow で利用でき、次のコマンドを使用してデータを直接ロードできます:

from tensorflow.keras.datasets import mnist

(x_train, y_train), (x_test, y_test) ) = mnist.load_data()

このコマンドは、ニューラル ネットワークのトレーニングに使用される変数 x_train および y_train に MNIST データセットをロードします。テスト データは変数 x_test および y_test にロードされ、ニューラル ネットワークのテストに使用されます。 x_train と x_test には数値画像データが含まれ、y_train と y_test には数値画像のラベルが含まれます。

次に、データセットを見てさらに詳しく見てみましょう:

print('x_train Shape:', x_train.shape)

print('y_train Shape :' 、y_train.shape)

print('x_testshape:', x_test.shape)

print('y_testshape:', y_test.shape)

at出力すると、次の情報が表示されます。

xx_train 形状: (60000, 28, 28)

y_train 形状: (60000,)

x_test 形状: (10000 , 28, 28)

y_test 形状: (10000,)

これは、トレーニング データ セットに 60000 個のデジタル画像が含まれており、各画像は 28 ピクセル x 28 ピクセルであることを示しています。テスト データセットには 10,000 枚の画像があります。

  1. ニューラル ネットワーク モデル

データを準備した後、ニューラル ネットワーク モデルを選択する必要があります。 2 つの完全に接続された層 (密) で構成される非常に単純なニューラル ネットワーク モデルを選択します。最初の完全に接続された層には 128 個のニューロンが含まれ、2 番目の完全に接続された層には 10 個のニューロンが含まれます。コードは次のとおりです。

from tensorflow.keras.models import Sequential

from tensorflow.keras.layers import Dense, Flatten

model = Sequential()

model.add(Flatten(input_shape=(28, 28)))

model.add(Dense(128,activation='relu'))

model.add(Dense (10、activation='softmax'))

model.compile(optimizer='adam',

loss='sparse_categorical_crossentropy',

metrics=['accuracy' ])

ここでは、最初に Sequential モデルを作成し、次に 28x28 の画像データを 1 次元配列に平坦化するために使用される Flatten レイヤーを追加しました。次に、128 個のニューロンを含む全結合層を追加し、活性化関数として ReLU を使用しました。最後に、10 個のニューロンを含む別の全結合層を追加し、Softmax 活性化関数を使用して各数値の確率分布を取得します。モデルは、adam オプティマイザーとスパース カテゴリ クロス エントロピー損失関数を使用してコンパイルされます。

  1. トレーニング モデル

データとモデルを準備しました。次に、トレーニング データを使用してモデルをトレーニングする必要があります。次のコマンドを使用してモデルをトレーニングできます:

history = model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))

このコードでは 10 を使用します。エポック (エポック) を使用してモデルをトレーニングし、テスト セットを検証に使用します。トレーニングが完了したら、次のコードを使用してモデルを評価できます:

test_loss, test_acc = model.evaluate(x_test, y_test)

print('テスト精度:', test_acc)

出力には、テスト セットの精度メトリクスが表示されます。

  1. 予測

モデルをトレーニングして評価した後、そのモデルを使用して未知のデータを予測できます。次のコードを使用して画像のラベルを予測できます:

import numpy as np

image_index = 7777 # 0

img = x_test[image_index]# から開始

##img = np.expand_dims(img, axis=0)

predictions = model.predict(img)

print(predictions)

print(" Predicted label :", np.argmax(predictions))

出力では、イメージが番号 2 であると予測されていることがわかります。

    結論
この記事では、Python で分類にニューラル ネットワークを使用する方法を紹介しました。 TensorFlow を使用してニューラル ネットワーク モデルを構築およびトレーニングし、テストと予測には MNIST データセットを使用しました。このモデルをさまざまなカテゴリの画像分類タスクに使用し、必要に応じてモデル内のニューラル ネットワーク レイヤーを調整できます。ニューラル ネットワークを使用した分類は、大量のデータ分類を簡単に処理できる非常に効果的な方法であり、モデル開発と分類タスクをより迅速に実行できるようになります。

以上がPython で分類にニューラル ネットワークを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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