Rumah > pembangunan bahagian belakang > Tutorial Python > Membina Rangkaian Neural Convolutional Asas (CNN) dalam Python

Membina Rangkaian Neural Convolutional Asas (CNN) dalam Python

WBOY
Lepaskan: 2024-08-28 18:33:07
asal
895 orang telah melayarinya

Building a Basic Convolutional Neural Network (CNN) in Python

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.

? Prasyarat

Sebelum anda bermula, pastikan anda telah memasang perpustakaan berikut:

pip install tensorflow numpy matplotlib
Salin selepas log masuk

?️ Langkah 1: Import Perpustakaan yang Diperlukan

Mulakan dengan mengimport perpustakaan penting:

import tensorflow as tf
from tensorflow.keras import layers, models
import matplotlib.pyplot as plt
Salin selepas log masuk

?️ Langkah 2: Muatkan dan Praproses Set Data

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
Salin selepas log masuk

? Langkah 3: Bina Model CNN

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'))
Salin selepas log masuk

? Langkah 4: Susun Model

Menyusun model melibatkan penentuan pengoptimuman, fungsi kehilangan dan metrik untuk dipantau semasa latihan.

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
Salin selepas log masuk

? Langkah 5: Latih Model

Latih model CNN tentang data latihan untuk beberapa zaman.

history = model.fit(x_train, y_train, epochs=10, 
                    validation_data=(x_test, y_test))
Salin selepas log masuk

? Langkah 6: Nilaikan Model

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}')
Salin selepas log masuk

?️ Langkah 7: Visualisasikan Hasil Latihan

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()
Salin selepas log masuk

? Kesimpulan

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan