„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Aufbau eines einfachen Faltungs-Neuronalen Netzwerks (CNN) in Python

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

Veröffentlicht am 01.11.2024
Durchsuche:643

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, durch Backpropagation automatisch und adaptiv räumliche Hierarchien von Merkmalen 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

?️ 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

?️ 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

? Schritt 3: Erstellen Sie das CNN-Modell

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

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'))

? 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'])

? Schritt 5: Trainieren Sie das Modell

Trainieren Sie das CNN-Modell anhand der Trainingsdaten für einige Epochen.

history = model.fit(x_train, y_train, epochs=10, 
                    validation_data=(x_test, y_test))

? 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}')

?️ 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()

? 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

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/abhinowww/building-a-basic-convolutional-neural-network-cnn-in-python-3bab?1 Bei Verstößen wenden Sie sich bitte an [email protected] um es zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3