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

WBOY
Libérer: 2024-08-28 18:33:07
original
858 Les gens l'ont consulté

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
Copier après la connexion

?️ É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
Copier après la connexion

?️ É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 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
Copier après la connexion

? É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'))
Copier après la connexion

? É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'])
Copier après la connexion

? Étape 5 : Former le modèle

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))
Copier après la connexion

? Étape 6 : évaluer le modèle

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}')
Copier après la connexion

?️ É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()
Copier après la connexion

? 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 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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal