Maison >développement back-end >Tutoriel Python >Keras : comprendre les bases avec un exemple détaillé

Keras : comprendre les bases avec un exemple détaillé

Linda Hamilton
Linda Hamiltonoriginal
2024-10-21 06:11:30942parcourir

Keras: Understanding the Basics with a Detailed Example

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 !

1. Qu'est-ce que Keras ?

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.

2. Pourquoi utiliser Keras ?

  • Facilité d'utilisation : Keras est conçu pour être facile à lire et à comprendre, ce qui le rend idéal pour les débutants.
  • Modulaire : Il est hautement modulaire, ce qui signifie que vous pouvez assembler des modèles comme des blocs de construction.
  • Support multi-backend : Keras peut fonctionner sur TensorFlow, Theano ou CNTK, ce qui le rend flexible.
  • Prototypage rapide : vous pouvez créer, compiler et entraîner des modèles d'apprentissage profond en quelques lignes de code seulement.

3. Qu'est-ce que le MNIST ?

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.


4. Construire un réseau neuronal simple avec Keras (étape par étape)

Construisons maintenant un réseau neuronal simple utilisant Keras pour classer ces chiffres manuscrits. Nous allons le parcourir étape par étape.

Étape 1 : Installez TensorFlow (Keras est fourni avec TensorFlow)

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

Étape 2 : Importer les bibliothèques requises

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.

Étape 3 : Charger l'ensemble de données MNIST

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.

Étape 4 : Prétraiter les données

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

Étape 5 : Construire le modèle

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
  • Aplatir : Le calque Aplatir convertit l'image 2D 28x28 en un tableau 1D de 784 valeurs.
  • Dense : Une couche Dense est une couche entièrement connectée. Ici, nous avons 128 neurones dans la couche cachée et 10 neurones dans la couche de sortie (car nous avons des classes à 10 chiffres). Nous utilisons ReLU comme fonction d'activation pour la couche cachée et softmax pour la couche de sortie.

Étape 6 : Compiler le modèle

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()
  • Adam optimiseur : il s'agit d'un optimiseur populaire pour la formation de modèles d'apprentissage en profondeur.
  • Entropie croisée catégorielle clairsemée : Cette fonction de perte est utilisée pour les problèmes de classification multi-classes comme le nôtre.
  • Précision : nous utiliserons la précision comme mesure pour évaluer les performances du modèle.

Étape 7 : Former le modèle

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

Étape 8 : évaluer le modèle

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.


5. Que se passe-t-il dans les coulisses ?

Pour faire simple :

  1. Prétraitement des données : Nous avons normalisé les données pour rendre la formation plus efficace.
  2. Définition du modèle : Nous avons construit un réseau neuronal simple à rétroaction à l'aide de l'API Sequential.
  3. Compilation : Nous avons sélectionné la bonne fonction de perte et l'optimiseur pour guider l'apprentissage du modèle.
  4. Formation : Le modèle a appris à mapper des images sur des chiffres en plusieurs passages dans l'ensemble de données.
  5. Évaluation : Enfin, nous avons vérifié dans quelle mesure le modèle se généralisait à des données invisibles.

6. Où aller à partir d’ici ?

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!

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