卷積神經網路 (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
在此範例中,我們將使用 CIFAR-10 資料集,該資料集由 10 個類別的 60,000 張 32x32 彩色影像組成。
# 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'])
在幾個 epoch 的訓練資料上訓練 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
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3