Aufbau eines einfachen Faltungs-Neuronalen Netzwerks (CNN) in Python

WBOY
Freigeben: 2024-08-28 18:33:07
Original
870 Leute haben es durchsucht

Building a Basic Convolutional Neural Network (CNN) in Python

Convolutional Neural Networks (CNNs) sind leistungsstarke Werkzeuge für Bildverarbeitungs- und Erkennungsaufgaben. Sie sind darauf ausgelegt, räumliche Hierarchien von Features durch Backpropagation automatisch und adaptiv zu erlernen. Lassen Sie uns in den Aufbau eines einfachen CNN mit Python und TensorFlow/Keras eintauchen.

? Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass die folgenden Bibliotheken installiert sind:

pip install tensorflow numpy matplotlib
Nach dem Login kopieren

?️ Schritt 1: Notwendige Bibliotheken importieren

Beginnen Sie mit dem Importieren der wesentlichen Bibliotheken:

import tensorflow as tf
from tensorflow.keras import layers, models
import matplotlib.pyplot as plt
Nach dem Login kopieren

?️ Schritt 2: Den Datensatz laden und vorverarbeiten

Für dieses Beispiel verwenden wir den CIFAR-10-Datensatz, der aus 60.000 32x32-Farbbildern in 10 Klassen besteht.

# 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
Nach dem Login kopieren

? Schritt 3: Erstellen Sie das CNN-Modell

Lassen Sie uns nun das CNN-Modell erstellen. Dieses Modell umfasst die Schlüsselschichten: Faltungs-, Pooling- und Dichteschicht.

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'))
Nach dem Login kopieren

? Schritt 4: Kompilieren Sie das Modell

Das Kompilieren des Modells umfasst die Angabe des Optimierers, der Verlustfunktion und der Metriken, die während des Trainings überwacht werden sollen.

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
Nach dem Login kopieren

? Schritt 5: Trainieren Sie das Modell

Trainieren Sie das CNN-Modell einige Epochen lang anhand der Trainingsdaten.

history = model.fit(x_train, y_train, epochs=10, 
                    validation_data=(x_test, y_test))
Nach dem Login kopieren

? Schritt 6: Bewerten Sie das Modell

Bewerten Sie das Modell nach dem Training anhand der Testdaten, um zu sehen, wie gut es funktioniert.

test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print(f'\nTest accuracy: {test_acc}')
Nach dem Login kopieren

?️ Schritt 7: Trainingsergebnisse visualisieren

Lassen Sie uns abschließend die Genauigkeit und den Verlust über die Trainingsepochen hinweg visualisieren.

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()
Nach dem Login kopieren

? Abschluss

Dieses grundlegende CNN-Modell dient als guter Ausgangspunkt für die Bewältigung von Bildklassifizierungsaufgaben. Durch das Verstehen und Modifizieren dieses Modells können Sie mit verschiedenen Architekturen und Techniken experimentieren, um die Leistung Ihres Modells zu verbessern. Erkunden und optimieren Sie die Ebenen weiter, um noch leistungsfähigere neuronale Netze aufzubauen! ?


Dieser Code ist so konzipiert, dass er leicht zu befolgen und zu ändern ist, sodass er für Anfänger und diejenigen geeignet ist, die mit CNNs in Python beginnen möchten.

Blog-Link für CNN-Architektur:https://dev.to/abhinowww/demystifying-cnn-neural-network-layers-a-deep-dive-into-ai-architecture-12d2

Das obige ist der detaillierte Inhalt vonAufbau eines einfachen Faltungs-Neuronalen Netzwerks (CNN) in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage