Heim > Technologie-Peripheriegeräte > IT Industrie > Ein Anfängerleitfaden zu Keras: Ziffernerkennung in 30 Minuten

Ein Anfängerleitfaden zu Keras: Ziffernerkennung in 30 Minuten

Joseph Gordon-Levitt
Freigeben: 2025-02-10 15:27:16
Original
275 Leute haben es durchsucht

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.

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

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.

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

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

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

. Das Visualisieren von Beispiels Ziffern hilft dabei, die Datenstruktur zu verstehen:
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()
Nach dem Login kopieren
Nach dem Login kopieren

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

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: <🎜>
  1. Umformung: Bilder werden mit .reshape() in das Format von (m x n x 1) umgestaltet.
  2. .
  3. Normalisierung:
  4. Pixelwerte (0-255) werden durch Teilen durch 255 auf 0-1 normalisiert.
  5. One-Hot-Codierung: y_train Die abhängige Variable (y_test, to_categorical()) wird in eine Binärklassenmatrix unter Verwendung
  6. 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()
Nach dem Login kopieren
Nach dem Login kopieren

Modelldesign und -training

Unser CNN -Modell ist nacheinander erstellt:
  1. Faltungsschichten:
  2. Merkmale aus den Eingabebildern extrahieren.
  3. Pooling -Schicht:
  4. reduziert Dimensionalität und Rechenkosten.
  5. Dropout -Schicht:
  6. verhindert Überanpassung.
  7. Flachschicht:
  8. Umwandelt die mehrdimensionale Ausgabe in ein 1D-Array.
  9. dichte Schichten:
  10. 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)
Nach dem Login kopieren

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

unter Verwendung von Epochen und Stapelgröße durchgeführt. Das ausgebildete Modell wird für die spätere Verwendung gespeichert.
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)
])
Nach dem Login kopieren

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

, um die Klassifizierung zu erhalten.
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")
Nach dem Login kopieren

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

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage