Maison > Article > développement back-end > Construire un réseau neuronal convolutif de base (CNN) en Python
Les réseaux de neurones convolutifs (CNN) sont des outils puissants pour les tâches de traitement et de reconnaissance d'images. Ils sont conçus pour apprendre automatiquement et de manière adaptative les hiérarchies spatiales des caractéristiques par rétropropagation. Passons à la création d'un CNN de base à l'aide de Python et TensorFlow/Keras.
Avant de commencer, assurez-vous que les bibliothèques suivantes sont installées :
pip install tensorflow numpy matplotlib
Commencez par importer les bibliothèques essentielles :
import tensorflow as tf from tensorflow.keras import layers, models import matplotlib.pyplot as plt
Pour cet exemple, nous utiliserons l'ensemble de données CIFAR-10, qui se compose de 60 000 images couleur 32x32 réparties en 10 classes.
# 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
Maintenant, construisons le modèle CNN. Ce modèle comprendra les couches clés : couches convolutives, poolées et denses.
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'))
La compilation du modèle implique de spécifier l'optimiseur, la fonction de perte et les métriques à surveiller pendant la formation.
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
Entraînez le modèle CNN sur les données d'entraînement pendant quelques époques.
history = model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))
Après l'entraînement, évaluez le modèle sur les données de test pour voir ses performances.
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2) print(f'\nTest accuracy: {test_acc}')
Enfin, visualisons la précision et la perte au fil des époques d'entraînement.
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()
Ce modèle CNN de base constitue un excellent point de départ pour aborder les tâches de classification d'images. En comprenant et en modifiant ce modèle, vous pouvez expérimenter différentes architectures et techniques pour améliorer les performances de votre modèle. Continuez à explorer et à peaufiner les couches pour créer des réseaux de neurones encore plus puissants ! ?
Ce code est conçu pour être facile à suivre et à modifier, ce qui le rend adapté aux débutants et à ceux qui cherchent à se lancer avec les CNN en Python.
Lien du blog pour l'architecture CNN :https://dev.to/abhinowww/demystifying-cnn-neural-network-layers-a-deep-dive-into-ai-architecture-12d2
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!