Maison  >  Article  >  développement back-end  >  Comment utiliser les réseaux de neurones pour la classification en Python ?

Comment utiliser les réseaux de neurones pour la classification en Python ?

WBOY
WBOYoriginal
2023-06-04 22:40:321905parcourir

Lorsqu'il s'agit de classer de grandes quantités de données, le traitement manuel de ces données est une tâche très longue et difficile. Dans ce cas, l’utilisation d’un réseau neuronal pour la classification peut effectuer le travail rapidement et facilement. Python est un bon choix car il possède de nombreuses bibliothèques de réseaux neuronaux matures et faciles à utiliser. Cet article explique comment utiliser les réseaux de neurones pour la classification en Python.

  1. Réseaux de neurones et classification

Avant d'expliquer comment utiliser les réseaux de neurones pour la classification, nous devons comprendre brièvement le concept de réseaux de neurones. Un réseau de neurones est un modèle informatique qui fonctionne en construisant un modèle basé sur des relations entre de grandes quantités de données d'entrée et de sortie pour prédire certaines propriétés de données inconnues. Ce modèle fonctionne très bien sur les problèmes de classification et peut être utilisé pour classer différents types de données telles que des images, des e-mails et des voix.

La classification est l'une des principales applications des réseaux de neurones. Le but des problèmes de classification est de classer les données en différentes catégories. Par exemple, en reconnaissance d’images, les réseaux de neurones peuvent classer différentes images en différentes catégories telles que les chats, les chiens ou les voitures. Dans ce cas, le réseau neuronal prend les images comme données d'entrée et la classification comme données de sortie. La classification est le processus de division des données en différentes catégories, généralement à l'aide de méthodes d'apprentissage supervisé.

  1. Installer la bibliothèque de réseaux neuronaux

Il existe de nombreuses bibliothèques de réseaux neuronaux parmi lesquelles choisir en Python, telles que TensorFlow, Keras, PyTorch, etc. Dans cet article, nous utiliserons TensorFlow, une bibliothèque open source d'intelligence artificielle développée par l'équipe brain de Google. TensorFlow est un framework très populaire, facile à apprendre et à utiliser, et il est utilisé dans un grand nombre de projets d'apprentissage automatique.

Si vous n'avez pas installé TensorFlow, vous pouvez ouvrir un terminal ou une invite de commande et saisir la commande suivante :

pip install tensorflow

Une fois l'installation terminée, vous pouvez utiliser la bibliothèque TensorFlow en code Python.

  1. Préparation des données

La préparation des données est une étape critique dans les tâches de classification. Les données doivent être converties dans un format numérique pouvant être compris par le réseau neuronal. Ici, nous présenterons un ensemble de données très populaire MNIST, composé d'images numériques, chaque image représente un nombre. L'ensemble de données MNIST est disponible dans TensorFlow, vous pouvez directement utiliser la commande suivante pour charger les données :

from tensorflow.keras.datasets import mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()

Cette commande charge l'ensemble de données MNIST dans les variables x_train et y_train, qui sont utilisées pour entraîner le réseau neuronal. Les données de test sont chargées dans les variables x_test et y_test et sont utilisées pour tester le réseau neuronal. x_train et x_test contiennent les données d'image numériques, et y_train et y_test contiennent les étiquettes des images numériques.

Ensuite, jetons un coup d'œil à l'ensemble de données pour en savoir plus :

print('x_train shape:', x_train.shape)

print('y_train shape:', y_train.shape)

print(' x_test shape :', x_test.shape)

print('y_test shape:', y_test.shape)

Dans la sortie, vous verrez les informations suivantes :

x_train shape: (60000, 28, 28)

y_train shape : (60000,)

x_test shape: (10000, 28, 28)

y_test shape: (10000,)

Cela montre que l'ensemble de données d'entraînement contient 60000 images numériques, chaque image mesure 28 pixels x 28 pixels. L'ensemble de données de test contient 10 000 images.

  1. Modèle de réseau neuronal

Après avoir préparé les données, vous devez choisir un modèle de réseau neuronal. Nous choisirons un modèle de réseau de neurones très simple composé de deux couches entièrement connectées (Dense). La première couche entièrement connectée contient 128 neurones et la deuxième couche entièrement connectée contient 10 neurones. Le code est le suivant :

from tensorflow.keras.models import Sequential

from tensorflow.keras.layers import Dense, Flatten

model = Sequential()

model.add(Flatten(input_shape=(28, 28) ))

model.add(Dense(128, activation='relu'))

model.add(Dense(10, activation='softmax'))

model.compile(optimizer='adam',

loss=' sparse_categorical_crossentropy',

metrics=['accuracy'])

Ici, nous créons d'abord un modèle séquentiel, puis ajoutons un calque Aplatir, qui est utilisé pour aplatir les données d'image 28x28 dans un tableau unidimensionnel. Ensuite, nous avons ajouté une couche entièrement connectée avec 128 neurones et utilisé ReLU comme fonction d'activation. Enfin, nous ajoutons une autre couche entièrement connectée avec 10 neurones et utilisons la fonction d'activation Softmax pour obtenir une distribution de probabilité pour chaque nombre. Le modèle est compilé à l'aide de l'optimiseur Adam et de la fonction de perte d'entropie croisée catégorielle clairsemée.

  1. Entraînement du modèle

Nous avons préparé les données et le modèle, nous devons maintenant utiliser les données d'entraînement pour entraîner le modèle. La commande suivante peut être utilisée pour entraîner le modèle :

history = model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))

Ce code utilisera 10 époques (époques) pour entraîner le modèle tandis que Utilisez l'ensemble de test pour la vérification. Une fois la formation terminée, nous pouvons utiliser le code suivant pour évaluer le modèle :

test_loss, test_acc = model.evaluate(x_test, y_test)

print('Test précision:', test_acc)

Dans la sortie, vous verrez l'indice de précision du test sur l'ensemble.

  1. Prédiction

Après avoir entraîné et évalué le modèle, nous pouvons utiliser le modèle pour prédire des données inconnues. Nous pouvons utiliser le code suivant pour prédire l'étiquette d'une image :

import numpy as np

image_index = 7777 # À partir de 0

img = x_test[image_index]

img = np.expand_dims(img, axis=0 )

predictions = model.predict(img)

print(predictions)

print("Predicted label:", np.argmax(predictions))

Dans la sortie, nous pouvons voir que l'image devrait être le chiffre 2.

  1. Conclusion

Dans cet article, nous avons présenté comment utiliser les réseaux de neurones pour la classification en Python. Nous avons utilisé TensorFlow pour créer et entraîner le modèle de réseau neuronal, ainsi que l'ensemble de données MNIST à des fins de test et de prédiction. Vous pouvez utiliser ce modèle pour différentes catégories de tâches de classification d'images et ajuster les couches de réseau neuronal dans le modèle selon vos besoins. La classification à l'aide de réseaux de neurones est une méthode très efficace qui peut facilement gérer de grandes quantités de données, ce qui nous permet d'effectuer plus rapidement les tâches de développement de modèles et de classification.

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!

Déclaration:
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