


In diesem Artikel wird beschrieben, dass ein Kerasmodell für die handschriftliche Ziffernerkennung unter Verwendung eines Faltungsnetzes (CNN) und des MNIST -Datensatzes erstellt wird. Lassen Sie es uns für Klarheit und verbesserten Fluss umformulieren.
Erstellen eines handgeschriebenen Ziffernerkenners mit Keras
Dieses Tutorial zeigt, dass er ein Modell erstellt, um handgeschriebene Ziffern mithilfe der Python-Keras-Bibliothek zu erkennen, eine API auf hoher Ebene, die den Bau und die Schulung neuronaler Netzwerke vereinfacht. Wir nutzen die Kraft von Faltungsnetzwerken (CNNs) und des weit verbreiteten MNIST -Datensatzes.
.Verständnis des Ansatzes
Unser Modell verwendet eine CNN, eine besonders effiziente Architektur für die Bildklassifizierung. Im Gegensatz zu herkömmlichen neuronalen Netzwerken verarbeiten CNNS -Prozessdaten in einem 3D -Array (X, Y -Koordinaten und Farbe), was sie ideal für Bilddaten macht. Der MNIST -Datensatz, der 60.000 Schulungen und 10.000 Testbeispiele für handgeschriebene Ziffern enthält, liefert die erforderlichen markierten Daten für das Training.
künstliche neuronale Netzwerke (Anns) und CNNs
An ANN ist ein mathematisches Modell, das Eingangsdaten in Ausgabe durch versteckte Schichten transformiert, wobei jede Schicht eine Wahrscheinlichkeit darstellt. Das Training beinhaltet die Anpassung von Gewichten und Verzerrungen, die auf Fehlern basieren und das Netzwerk ermöglichen, Muster zu lernen.
CNNs bieten einen erheblichen Vorteil für die Bildverarbeitung. Ihre 3D -Array -Struktur bedeutet, dass jeder versteckte Schichtknoten nur mit einem kleinen Eingabebereich verbunden ist und die Effizienz im Vergleich zu herkömmlichen ANNs dramatisch erhöht. Zu den wichtigsten CNN -Schichten gehören Faltungsschichten (Merkmalextraktion), Pooling -Schichten (Merkmalsreduzierung), Abflachungsschichten (Dimensionalitätsreduzierung) und eine endgültige Klassifizierungsschicht.
Arbeiten mit dem MNIST -Datensatz
mnist.load_data()
Der MNIST -Datensatz ist innerhalb von Keras leicht verfügbar. Wir laden das Trainings- und Testdaten mit
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()
Die Trainings- und Testsätze haben Abmessungen (60000, 28, 28) bzw. (10000, 28, 28), was 28x28 Pixel -Bilder anzeigt.
Datenvorverarbeitung
Vor dem Modellerstellen müssen Daten vorverarbeitet werden:
- Umformung: Bilder werden mit
.reshape()
in das Format von (m x n x 1) umgestaltet. . - Normalisierung: Pixelwerte (0-255) werden durch Teilen durch 255 auf 0-1 normalisiert.
-
One-Hot-Codierung:
y_train
Die abhängige Variable (y_test
,to_categorical()
) wird in eine Binärklassenmatrix unter Verwendung für die Kompatibilität mit der Ausgabe des Modells konvertiert.
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()
Modelldesign und -training
Unser CNN -Modell ist nacheinander erstellt:
- Faltungsschichten: Merkmale aus den Eingabebildern extrahieren.
- Pooling -Schicht: reduziert Dimensionalität und Rechenkosten.
- Dropout -Schicht: verhindert Überanpassung.
- Flachschicht: Umwandelt die mehrdimensionale Ausgabe in ein 1D-Array.
- dichte Schichten: FESTE Klassifizierung durchführen.
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)
sparse_categorical_crossentropy
Das Modell wird unter Verwendung von .fit()
Verlust (für Ganzzahl -Etiketten), dem Adam -Optimierer und der Genauigkeit als Metrik kompiliert. Das Training wird mit
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) ])
Testen mit einem benutzerdefinierten Bild
.predict()
Um das Modell zu testen, laden wir ein benutzerdefiniertes handgeschriebenes Ziffernbild, Vorverarbeitung (konvertieren Sie es in Graustufen, formulieren, normalisieren), laden Sie das gespeicherte Modell und verwenden Sie
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")
Schlussfolgerung
Dieses Tutorial bietet ein grundlegendes Verständnis für den Aufbau eines handgeschriebenen Ziffernerkennungsmodells unter Verwendung von Keras und CNNs. Während die hohe Genauigkeit (z. B. & gt; 99%) eine hohe Genauigkeit erreicht, sind weitere Verbesserungen durch Modellparameterabstimmungen, Datenerweiterung und Erforschung fortschrittlicherer CNN -Architekturen möglich. Die bereitgestellten FAQs bieten weitere Einblicke in die beteiligten Konzepte.
Das obige ist der detaillierte Inhalt vonEin Anfängerleitfaden zu Keras: Ziffernerkennung in 30 Minuten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Bleiben Sie über die neuesten technischen Trends mit diesen Top -Entwickler -Newsletters informiert! Diese kuratierte Liste bietet für jeden etwas, von KI -Enthusiasten bis hin zu erfahrenen Backend- und Frontend -Entwicklern. Wählen Sie Ihre Favoriten und sparen Sie Zeit, um nach REL zu suchen

Dieses Tutorial führt Sie durch das Erstellen einer serverlosen Bildverarbeitungspipeline mit AWS -Diensten. Wir werden ein Next.JS -Frontend erstellen, der in einem ECS -Fargate -Cluster eingesetzt wird und mit einem API -Gateway, Lambda -Funktionen, S3 -Eimer und DynamoDB interagiert. Th

Dieses Pilotprogramm, eine Zusammenarbeit zwischen CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal und betätigten, rationalisiert ARM64 CI/CD für CNCF -Github -Projekte. Die Initiative befasst sich mit Sicherheitsbedenken und Leistung


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft
