ホームページ  >  記事  >  テクノロジー周辺機器  >  TensorFlow を使用してニューラル ネットワークを構築する方法

TensorFlow を使用してニューラル ネットワークを構築する方法

WBOY
WBOY転載
2024-01-24 22:39:051050ブラウズ

TensorFlow を使用してニューラル ネットワークを構築する方法

TensorFlow は、さまざまなニューラル ネットワークのトレーニングとデプロイに使用される人気のある機械学習フレームワークです。この記事では、TensorFlow を使用して単純なニューラル ネットワークを構築する方法について説明し、開始するためのサンプル コードを提供します。

ニューラル ネットワークを構築する最初のステップは、ネットワークの構造を定義することです。 TensorFlow では、tf.keras モジュールを使用してニューラル ネットワークの層を定義できます。次のコード例では、2 つの隠れ層と 1 つの出力層を持つ完全接続フィードフォワード ニューラル ネットワークを定義します。 「」パイソン テンソルフロー asf をインポートする モデル = tf.keras.models.Sequential([ tf.keras.layers.Dense(units=64,activation='relu',input_shape=(input_dim,)), tf.keras.layers.Dense(単位=32、アクティベーション='relu')、 tf.keras.layers.Dense(units=output_dim、activation='softmax') ]) 「」 上記のコードでは、「Sequential」モデルを使用してニューラル ネットワークを構築します。 「密」層は全結合層を表し、各層のニューロン (ユニット) の数と活性化関数 (活性化) を指定します。最初の隠れ層の入力形状は `input_shape

import tensorflow as tf

model = tf.keras.Sequential([
    tf.keras.layers.Dense(64, activation='relu', input_shape=(784,)),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
])

で与えられます。この例では、Sequential モデルを使用してニューラル ネットワークを定義します。これは、各レイヤーが前のレイヤーの上に構築される単純なスタッキング モデルです。 3 つの層を定義します。最初の層と 2 番目の層は両方とも 64 個のニューロンを持つ全結合層であり、ReLU 活性化関数を使用します。 MNIST 手書き数字データセットを使用するため、入力レイヤーの形状は (784,) であり、このデータセット内の各画像は 28x28 ピクセルであり、784 ピクセルに拡張されます。最後の層は、ソフトマックス活性化関数を使用する 10 個のニューロンを含む完全接続層で、MNIST データセットでの数字分類などの分類タスクに使用されます。

モデルをコンパイルし、オプティマイザー、損失関数、評価メトリクスを指定する必要があります。以下に例を示します。

model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

この例では、Adam オプティマイザーを使用して、マルチクラス分類問題の損失関数としてクロスエントロピーを使用してモデルをトレーニングします。また、トレーニングおよび評価中にモデルのパフォーマンスを追跡するための評価指標として精度も指定しました。

モデルの構造とトレーニング構成を定義したので、データを読み取り、モデルのトレーニングを開始できます。例として MNIST 手書き数字データセットを使用します。コード例を次に示します。

from tensorflow.keras.datasets import mnist

(train_images, train_labels), (test_images, test_labels) = mnist.load_data()

train_images = train_images.reshape((60000, 784))
train_images = train_images.astype('float32') / 255

test_images = test_images.reshape((10000, 784))
test_images = test_images.astype('float32') / 255

train_labels = tf.keras.utils.to_categorical(train_labels)
test_labels = tf.keras.utils.to_categorical(test_labels)

model.fit(train_images, train_labels, epochs=5, batch_size=64)

この例では、mnist.load_data() 関数を使用して MNIST データセットをロードします。次に、トレーニング画像とテスト画像を 784 ピクセルに平坦化し、ピクセル値を 0 から 1 の間になるようにスケーリングしました。また、ラベルを分類タスクに変換するためにラベルをワンホット エンコードします。最後に、fit 関数を使用してモデルをトレーニングします。トレーニング画像とラベルを使用し、5 エポックのトレーニングを指定し、各エポックに 64 個のサンプルを使用します。

トレーニングが完了したら、評価関数を使用して、テスト セットでのモデルのパフォーマンスを評価できます。

test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)

この例では、評価関数を次のように呼び出します。テスト画像とラベル機能を使用し、結果を印刷して、テスト セット上のモデルの精度を示します。

これは、TensorFlow を使用してニューラル ネットワークを構築およびトレーニングする方法の簡単な例です。もちろん、実際のアプリケーションでは、より複雑なネットワーク構造やより複雑なデータ セットが必要になる場合があります。ただし、この例は、TensorFlow の基本的な使用法を理解するのに役立つ出発点となります。

完全なコード例は次のとおりです:

import tensorflow as tf
from tensorflow.keras.datasets import mnist

# Define the model architecture
model = tf.keras.Sequential([
    tf.keras.layers.Dense(64, activation='relu', input_shape=(784,)),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
])

# Compile the model
model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

# Load the data
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()

train_images = train_images.reshape((60000, 784))
train_images = train_images.astype('float32') / 255

test_images = test_images.reshape((10000, 784))
test_images = test_images.astype('float32') / 255

train_labels = tf.keras.utils.to_categorical(train_labels)
test_labels = tf.keras.utils.to_categorical(test_labels)

# Train the model
model.fit(train_images, train_labels, epochs=5, batch_size=64)

# Evaluate the model
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)

上記は、TensorFlow を使用してニューラル ネットワークを構築するためのコード例です。これは、2 つの隠れ層を含む層を定義します。完全に接続されたフィードフォワード ニューラル ネットワークは、MNIST 手書き数字データセットを使用し、Adam オプティマイザーとクロスエントロピー損失関数を使用してトレーニングおよびテストされています。最終出力はテスト セットの精度です。

以上がTensorFlow を使用してニューラル ネットワークを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は163.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。