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