"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Construire un réseau neuronal convolutif de base (CNN) en Python

Construire un réseau neuronal convolutif de base (CNN) en Python

Publié le 2024-11-01
Parcourir:278

Building a Basic Convolutional Neural Network (CNN) in 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.

? Conditions préalables

Avant de commencer, assurez-vous que les bibliothèques suivantes sont installées :

pip install tensorflow numpy matplotlib

?️ Étape 1 : Importer les bibliothèques nécessaires

Commencez par importer les bibliothèques essentielles :

import tensorflow as tf
from tensorflow.keras import layers, models
import matplotlib.pyplot as plt

?️ Étape 2 : Charger et prétraiter l'ensemble de données

Pour cet exemple, nous utiliserons l'ensemble de données CIFAR-10, qui se compose de 60 000 images couleur 32 x 32 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

? Étape 3 : Créer le modèle CNN

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

? Étape 4 : Compiler le modèle

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

? Étape 5 : Former le modèle

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

? Étape 6 : évaluer le modèle

Après la formation, é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}')

?️ Étape 7 : Visualiser les résultats de l'entraînement

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

? Conclusion

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 familiariser 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

Déclaration de sortie Cet article est reproduit sur : https://dev.to/abhinowww/building-a-basic-convolutional-neural-network-cnn-in-python-3bab?1 En cas de violation, veuillez contacter [email protected] pour le supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3