Maison >développement back-end >Tutoriel Python >Keras : comprendre les bases avec un exemple détaillé
Salut les développeurs,
Si vous débutez dans l'apprentissage profond, vous avez probablement rencontré le nom Keras. Mais qu’est-ce que c’est exactement et comment ça marche ? Dans cet article, je vais tout expliquer à partir de zéro et vous montrer un exemple étape par étape utilisant Keras pour créer un modèle simple d'apprentissage en profondeur. J'expliquerai également les concepts clés comme l'ensemble de données MNIST, afin que vous puissiez suivre facilement !
Keras est une API de réseaux de neurones de haut niveau open source écrite en Python. Il permet aux développeurs de créer rapidement et facilement des modèles d'apprentissage en profondeur à l'aide d'une interface conviviale. Keras s'appuie sur des frameworks d'apprentissage profond plus complexes comme TensorFlow, vous permettant de vous concentrer sur la construction de votre modèle sans vous enliser dans la complexité sous-jacente.
Le ensemble de données MNIST est l'un des ensembles de données les plus connus en matière d'apprentissage automatique. Il contient 70 000 images de chiffres manuscrits (0-9). Chaque image est une image en niveaux de gris de 28 x 28 pixels. Le but est de classer ces images dans l'une des catégories à dix chiffres.
Voici un exemple de quelques chiffres de l'ensemble de données MNIST :
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
Lorsque vous travaillez avec Keras, vous verrez souvent l'ensemble de données MNIST utilisé dans les didacticiels car il est simple, bien compris et idéal pour tester de nouveaux modèles.
Construisons maintenant un réseau neuronal simple utilisant Keras pour classer ces chiffres manuscrits. Nous allons le parcourir étape par étape.
Tout d'abord, vous devez avoir TensorFlow installé, car Keras fait partie de TensorFlow dans les dernières versions. Vous pouvez l'installer via pip :
pip install tensorflow
Nous importerons les bibliothèques spécifiques à TensorFlow et Keras dont nous aurons besoin pour créer et entraîner le modèle.
import tensorflow as tf from tensorflow.keras import layers, models
Ici, tensorflow.keras est l'API Keras dans TensorFlow.
Keras offre un accès facile à des ensembles de données comme MNIST. Nous allons charger l'ensemble de données et le diviser en ensembles d'entraînement et de test.
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
Dans cette étape, train_images et train_labels contiennent les données d'entraînement, tandis que test_images et test_labels contiennent les données de test.
Chaque image dans train_images est une image en niveaux de gris de 28 x 28 pixels, et train_labels contient les étiquettes numériques (0-9) correspondant à chaque image.
Ensuite, nous devons normaliser les valeurs de pixels des images pour rendre la formation du modèle plus efficace. Chaque valeur de pixel dans une image est comprise entre 0 et 255. Nous allons mettre ces valeurs à l'échelle entre 0 et 1 en divisant les images par 255.
pip install tensorflow
Construisons maintenant notre réseau neuronal en utilisant Keras. Nous allons créer un modèle Séquentiel, qui nous permet d'empiler les couches les unes sur les autres.
import tensorflow as tf from tensorflow.keras import layers, models
Ensuite, nous devons compiler le modèle. C'est ici que nous spécifions l'optimiseur, la fonction de perte et les métriques d'évaluation.
# Load the MNIST dataset mnist = tf.keras.datasets.mnist (train_images, train_labels), (test_images, test_labels) = mnist.load_data()
Maintenant, nous sommes prêts à entraîner le modèle ! Nous l'entraînerons pendant 5 époques (c'est-à-dire que le modèle parcourra l'ensemble des données d'entraînement 5 fois).
# Normalize pixel values to be between 0 and 1 train_images = train_images / 255.0 test_images = test_images / 255.0
Une fois le modèle entraîné, nous pouvons évaluer ses performances sur les données de test.
# Build the model model = models.Sequential([ layers.Flatten(input_shape=(28, 28)), # Flatten the 28x28 images into a 1D vector of 784 pixels layers.Dense(128, activation='relu'), # Add a fully-connected (Dense) layer with 128 neurons layers.Dense(10, activation='softmax') # Output layer with 10 neurons (one for each digit 0-9) ])
Cela nous donnera la précision du modèle sur l'ensemble de données de test.
Pour faire simple :
Keras simplifie le processus de création et de formation des réseaux de neurones, ce qui en fait un point de départ idéal pour les débutants. Une fois que vous êtes à l'aise avec les modèles de base, vous pouvez expérimenter des architectures plus complexes comme les réseaux de neurones convolutifs (CNN) et les réseaux de neurones récurrents (RNN).
N'hésitez pas à plonger plus profondément dans le monde du deep learning avec Keras, à expérimenter différents modèles et à repousser les limites de ce qui est possible !
Que pensez-vous de Keras jusqu'à présent ?
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!