recherche
MaisonPériphériques technologiquesIndustrie informatiqueA Guide du débutant des keras: reconnaissance des chiffres en 30 minutes

Cet article détaille la construction d'un modèle Keras pour la reconnaissance des chiffres manuscrits à l'aide d'un réseau neuronal convolutionnel (CNN) et de l'ensemble de données MNIST. Reformons-le pour la clarté et l'amélioration du flux.

A Beginner's Guide to Keras: Digit Recognition in 30 Minutes

Construire un reconnaissance de chiffres manuscrits avec keras

Ce tutoriel montre la création d'un modèle pour reconnaître les chiffres manuscrits à l'aide de la bibliothèque Keras de Python, une API de haut niveau qui simplifie la construction et la formation de réseaux de neurones. Nous tirons parti de la puissance des réseaux de neurones convolutionnels (CNNS) et de l'ensemble de données MNIST largement utilisé.

Comprendre l'approche

Notre modèle utilise un CNN, une architecture particulièrement efficace pour la classification des images. Contrairement aux réseaux de neurones traditionnels, le CNNS traite les données dans un réseau 3D (coordonnées et couleur X), ce qui les rend idéales pour les données d'image. L'ensemble de données MNIST, contenant 60 000 formation et 10 000 exemples de tests de chiffres manuscrits, fournit les données étiquetées nécessaires pour la formation.

Réseaux de neurones artificiels (ANN) et CNNS

Ann est un modèle mathématique transformant les données d'entrée en sortie à travers des couches cachées, chaque couche représentant une probabilité. La formation consiste à ajuster les poids et les biais en fonction des erreurs, permettant au réseau d'apprendre les modèles.

CNNS offre un avantage significatif pour le traitement d'image. Leur structure de réseau 3D signifie que chaque nœud de couche caché se connecte à une petite région d'entrée, augmentant considérablement l'efficacité par rapport aux ANN traditionnels. Les couches CNN clés comprennent des couches convolutionnelles (extraction de caractéristiques), des couches de pool (réduction des caractéristiques), des couches d'aplatissement (réduction de la dimensionnalité) et une couche de classification finale.

A Beginner's Guide to Keras: Digit Recognition in 30 Minutes

A Beginner's Guide to Keras: Digit Recognition in 30 Minutes

Travailler avec l'ensemble de données MNIST

L'ensemble de données MNIST est facilement disponible dans Keras. Nous chargeons les données de formation et de test en utilisant mnist.load_data(). Visualiser des chiffres d'échantillons aide à comprendre la structure des données:

from keras.datasets import mnist
import matplotlib.pyplot as plt

(x_train, y_train), (x_test, y_test) = mnist.load_data()
image_index = 35
plt.imshow(x_train[image_index], cmap='Greys')
plt.show()

A Beginner's Guide to Keras: Digit Recognition in 30 Minutes

Les ensembles de formation et de test ont des dimensions (60000, 28, 28) et (10000, 28, 28) respectivement, indiquant des images de 28x28 pixels.

Prétraitement des données

Avant la création du modèle, les données doivent être prétraitées:

  1. Reshaper: Les images sont remodelées au format (m x n x 1) en utilisant .reshape().
  2. normalisation: Les valeurs de pixels (0-255) sont normalisées à 0-1 en divisant par 255.
  3. codage à un hot: La variable dépendante (y_train, y_test) est convertie en matrice de classe binaire en utilisant to_categorical() pour la compatibilité avec la sortie du modèle.
from keras.datasets import mnist
import matplotlib.pyplot as plt

(x_train, y_train), (x_test, y_test) = mnist.load_data()
image_index = 35
plt.imshow(x_train[image_index], cmap='Greys')
plt.show()

Conception et formation du modèle

Notre modèle CNN est construit séquentiellement:

  1. Couches convolutionnelles: Extraire les fonctionnalités des images d'entrée.
  2. Couche de mise en commun: réduit la dimensionnalité et le coût de calcul.
  3. Couche de dépôt: Empêche le sur-ajustement.
  4. Couche d'aplatissement: convertit la sortie multidimensionnelle en un tableau 1D.
  5. Couches denses: Effectuer la classification finale.
img_rows, img_cols = 28, 28
x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1) / 255
x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1) / 255
y_train = to_categorical(y_train, num_classes=10)
y_test = to_categorical(y_test, num_classes=10)

Le modèle est compilé en utilisant sparse_categorical_crossentropy perte (pour les étiquettes entières), l'optimiseur ADAM et la précision comme métrique. La formation est effectuée à l'aide de .fit(), spécifiant les époques et la taille du lot. Le modèle qualifié est enregistré pour une utilisation ultérieure.

from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D

model = Sequential([
    Conv2D(32, (3, 3), activation='relu', input_shape=(img_rows, img_cols, 1)),
    Conv2D(64, (3, 3), activation='relu'),
    MaxPooling2D((2, 2)),
    Dropout(0.25),
    Flatten(),
    Dense(128, activation='relu'),
    Dropout(0.5),
    Dense(10, activation='softmax') # 10 output classes (digits 0-9)
])

Test avec une image personnalisée

Pour tester le modèle, nous chargeons une image de chiffre manuscrite personnalisée, le préparez-le (converti en niveaux de gris, remodelage, normalisation), chargez le modèle enregistré et utilisez .predict() pour obtenir la classification.

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(x_train, y_train, batch_size=128, epochs=10, validation_data=(x_test, y_test))
model.save("test_model.h5")

A Beginner's Guide to Keras: Digit Recognition in 30 Minutes

Conclusion

Ce tutoriel fournit une compréhension fondamentale de la construction d'un modèle de reconnaissance de chiffres manuscrits à l'aide de keras et de CNN. Tout en atteignant une précision élevée (par exemple, & gt; 99%), d'autres améliorations sont possibles grâce à un réglage des paramètres du modèle, à l'augmentation des données et à l'exploration des architectures CNN plus avancées. Les FAQ fournies offrent des informations supplémentaires sur les concepts impliqués.

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
Top 21 newsletters du développeur auquel s'abonner en 2025Top 21 newsletters du développeur auquel s'abonner en 2025Apr 24, 2025 am 08:28 AM

Restez informé des dernières tendances technologiques avec ces meilleurs bulletins de développeur! Cette liste organisée offre quelque chose pour tout le monde, des amateurs d'IA aux développeurs assaisonnés du backend et du frontend. Choisissez vos favoris et gagnez du temps à la recherche de rel

Pipeline de traitement d'image sans serveur avec AWS ECS et LambdaPipeline de traitement d'image sans serveur avec AWS ECS et LambdaApr 18, 2025 am 08:28 AM

Ce tutoriel vous guide dans la création d'un pipeline de traitement d'image sans serveur à l'aide de services AWS. Nous allons créer un frontend Next.js déployé sur un cluster ECS Fargate, en interagissant avec une passerelle API, des fonctions lambda, des seaux S3 et DynamoDB. Ème

Pilote CNCF ARM64: impact et perspectivesPilote CNCF ARM64: impact et perspectivesApr 15, 2025 am 08:27 AM

Ce programme pilote, une collaboration entre le CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal et ACTUTIE, rationalise ARM64 CI / CD pour les projets GitHub CNCF. L'initiative répond aux problèmes de sécurité et aux performances LIM

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel