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.
Bevor Sie beginnen, stellen Sie sicher, dass die folgenden Bibliotheken installiert sind:
pip install tensorflow numpy matplotlib
Beginnen Sie mit dem Importieren der wesentlichen Bibliotheken:
import tensorflow as tf from tensorflow.keras import layers, models import matplotlib.pyplot as plt
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
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'))
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'])
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))
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}')
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()
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!