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.
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 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'))
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 anhand der Trainingsdaten für einige Epochen.
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
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