畳み込みニューラル ネットワーク (CNN) は、画像処理および認識タスクのための強力なツールです。これらは、バックプロパゲーションを通じてフィーチャの空間階層を自動的かつ適応的に学習するように設計されています。 Python と TensorFlow/Keras を使用して基本的な CNN を構築してみましょう。
始める前に、次のライブラリがインストールされていることを確認してください:
pip install tensorflow numpy matplotlib
まず、必須ライブラリをインポートします。
import tensorflow as tf from tensorflow.keras import layers, models import matplotlib.pyplot as plt
この例では、10 クラスの 60,000 個の 32x32 カラー画像で構成される CIFAR-10 データセットを使用します。
# Load the CIFAR-10 dataset (x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data() # Normalize the pixel values to be between 0 and 1 x_train, x_test = x_train / 255.0, x_test / 255.0
それでは、CNN モデルを構築しましょう。このモデルには、畳み込み層、プーリング層、および高密度層という主要な層が含まれます。
model = models.Sequential() # First Convolutional Layer model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3))) model.add(layers.MaxPooling2D((2, 2))) # Second Convolutional Layer model.add(layers.Conv2D(64, (3, 3), activation='relu')) model.add(layers.MaxPooling2D((2, 2))) # Third Convolutional Layer model.add(layers.Conv2D(64, (3, 3), activation='relu')) # Flatten the output and add Dense layers model.add(layers.Flatten()) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(10, activation='softmax'))
モデルのコンパイルには、トレーニング中に監視するオプティマイザー、損失関数、メトリクスの指定が含まれます。
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
数エポックのトレーニング データで CNN モデルをトレーニングします。
history = model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))
トレーニング後、テスト データでモデルを評価し、パフォーマンスがどの程度優れているかを確認します。
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2) print(f'\nTest accuracy: {test_acc}')
最後に、トレーニング エポックにわたる精度と損失を視覚化しましょう。
plt.plot(history.history['accuracy'], label='accuracy') plt.plot(history.history['val_accuracy'], label = 'val_accuracy') plt.xlabel('Epoch') plt.ylabel('Accuracy') plt.ylim([0, 1]) plt.legend(loc='lower right') plt.show()
この基本的な CNN モデルは、画像分類タスクに取り組むための優れた出発点として機能します。このモデルを理解して変更することで、さまざまなアーキテクチャや手法を試してモデルのパフォーマンスを向上させることができます。レイヤーの探索と微調整を続けて、さらに強力なニューラル ネットワークを構築してください。 ?
このコードは、理解しやすく変更しやすいように設計されており、初心者や Python で CNN を始めようとしている人に適しています。
CNN アーキテクチャのブログ リンク:https://dev.to/abhinowww/demystifying-cnn-neural-network-layers-a-deep-dive-into-ai-architecture-12d2
以上がPython での基本的な畳み込みニューラル ネットワーク (CNN) の構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。