Rangkaian Neural Konvolusi (CNN) ialah alat berkuasa untuk pemprosesan imej dan tugas pengecaman. Mereka direka bentuk untuk mempelajari hierarki spatial ciri secara automatik dan adaptif melalui perambatan belakang. Mari kita selami membina CNN asas menggunakan Python dan TensorFlow/Keras.
Sebelum anda bermula, pastikan anda telah memasang perpustakaan berikut:
pip install tensorflow numpy matplotlib
Mulakan dengan mengimport perpustakaan penting:
import tensorflow as tf from tensorflow.keras import layers, models import matplotlib.pyplot as plt
Untuk contoh ini, kami akan menggunakan set data CIFAR-10, yang terdiri daripada 60,000 imej berwarna 32x32 dalam 10 kelas.
# 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
Sekarang, mari bina model CNN. Model ini akan termasuk lapisan utama: Lapisan Konvolusi, Pengumpulan dan Padat.
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'))
Menyusun model melibatkan penentuan pengoptimuman, fungsi kehilangan dan metrik untuk dipantau semasa latihan.
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
Latih model CNN tentang data latihan untuk beberapa zaman.
history = model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))
Selepas latihan, nilai model pada data ujian untuk melihat prestasinya.
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2) print(f'\nTest accuracy: {test_acc}')
Akhir sekali, mari kita bayangkan ketepatan dan kerugian sepanjang zaman latihan.
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()
Model asas CNN ini berfungsi sebagai titik permulaan yang bagus untuk menangani tugas pengelasan imej. Dengan memahami dan mengubah suai model ini, anda boleh mencuba seni bina dan teknik yang berbeza untuk meningkatkan prestasi model anda. Teruskan meneroka dan mengubah suai lapisan untuk membina rangkaian saraf yang lebih berkuasa! ?
Kod ini direka bentuk agar mudah diikuti dan diubah suai, menjadikannya sesuai untuk pemula dan mereka yang ingin bermula dengan CNN dalam Python.
Pautan Blog Untuk Seni Bina CNN :https://dev.to/abhinowww/demystifying-cnn-neural-network-layers-a-deep-dive-into-ai-architecture-12d2
Atas ialah kandungan terperinci Membina Rangkaian Neural Convolutional Asas (CNN) dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!