Heim >Backend-Entwicklung >Python-Tutorial >Keras: Die Grundlagen anhand eines detaillierten Beispiels verstehen

Keras: Die Grundlagen anhand eines detaillierten Beispiels verstehen

Linda Hamilton
Linda HamiltonOriginal
2024-10-21 06:11:30948Durchsuche

Keras: Understanding the Basics with a Detailed Example

Hallo Entwickler,

Wenn Sie neu im Bereich Deep Learning sind, sind Sie wahrscheinlich schon auf den Namen Keras gestoßen. Aber was ist das genau und wie funktioniert es? In diesem Beitrag erkläre ich alles von Grund auf und zeige Ihnen ein Schritt-für-Schritt-Beispiel mit Keras zum Aufbau eines einfachen Deep-Learning-Modells. Ich erkläre auch Schlüsselkonzepte wie den MNIST-Datensatz, damit Sie leicht nachvollziehen können!

1. Was ist Keras?

Keras ist eine Open-Source-High-Level-API für neuronale Netze, die in Python geschrieben ist. Es ermöglicht Entwicklern, mithilfe einer benutzerfreundlichen Oberfläche schnell und einfach Deep-Learning-Modelle zu erstellen. Keras basiert auf komplexeren Deep-Learning-Frameworks wie TensorFlow, sodass Sie sich auf die Erstellung Ihres Modells konzentrieren können, ohne sich in der zugrunde liegenden Komplexität zu verlieren.

2. Warum Keras verwenden?

  • Benutzerfreundlichkeit: Keras ist so konzipiert, dass es leicht zu lesen und zu verstehen ist, was es ideal für Anfänger macht.
  • Modular: Es ist hochgradig modular, was bedeutet, dass Sie Modelle wie Bausteine ​​zusammensetzen können.
  • Multi-Backend-Unterstützung: Keras kann auf TensorFlow, Theano oder CNTK ausgeführt werden, was es flexibel macht.
  • Schnelles Prototyping: Sie können Deep-Learning-Modelle in nur wenigen Codezeilen erstellen, kompilieren und trainieren.

3. Was ist MNIST?

Der MNIST-Datensatz ist einer der bekanntesten Datensätze im maschinellen Lernen. Es enthält 70.000 Bilder handgeschriebener Ziffern (0-9). Bei jedem Bild handelt es sich um ein Graustufenbild mit einer Größe von 28 x 28 Pixeln. Ziel ist es, diese Bilder in eine der zehnstelligen Kategorien einzuordnen.

Hier ist ein Beispiel einiger Ziffern aus dem MNIST-Datensatz:

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]

Bei der Arbeit mit Keras wird der MNIST-Datensatz häufig in Tutorials verwendet, da er einfach, gut verständlich und hervorragend zum Testen neuer Modelle geeignet ist.


4. Aufbau eines einfachen neuronalen Netzwerks mit Keras (Schritt für Schritt)

Lassen Sie uns nun mithilfe von Keras ein einfaches neuronales Netzwerk aufbauen, um diese handgeschriebenen Ziffern zu klassifizieren. Wir gehen es Schritt für Schritt durch.

Schritt 1: TensorFlow installieren (Keras wird im Lieferumfang von TensorFlow geliefert)

Zuerst muss TensorFlow installiert sein, da Keras in den neuesten Versionen Teil von TensorFlow ist. Sie können es über pip:
installieren

pip install tensorflow

Schritt 2: Importieren Sie die erforderlichen Bibliotheken

Wir importieren TensorFlow- und Keras-spezifische Bibliotheken, die wir zum Erstellen und Trainieren des Modells benötigen.

import tensorflow as tf
from tensorflow.keras import layers, models

Hier ist tensorflow.keras die Keras-API innerhalb von TensorFlow.

Schritt 3: Laden Sie den MNIST-Datensatz

Keras bietet einfachen Zugriff auf Datensätze wie MNIST. Wir laden den Datensatz und teilen ihn in Trainings- und Testsätze auf.

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]

In diesem Schritt enthalten train_images und train_labels die Trainingsdaten, während test_images und test_labels die Testdaten enthalten.

Jedes Bild in train_images ist ein 28x28 Pixel großes Graustufenbild und train_labels enthält die Ziffernbeschriftungen (0-9), die jedem Bild entsprechen.

Schritt 4: Vorverarbeiten der Daten

Als nächstes müssen wir die Pixelwerte der Bilder normalisieren, um das Modelltraining effizienter zu gestalten. Jeder Pixelwert in einem Bild liegt zwischen 0 und 255. Wir skalieren diese Werte auf einen Wert zwischen 0 und 1, indem wir die Bilder durch 255 teilen.

pip install tensorflow

Schritt 5: Erstellen Sie das Modell

Jetzt bauen wir unser neuronales Netzwerk mit Keras auf. Wir erstellen ein Sequentielles Modell, das es uns ermöglicht, Schichten übereinander zu stapeln.

import tensorflow as tf
from tensorflow.keras import layers, models
  • Flatten: Die Flatten-Ebene wandelt das 28x28 2D-Bild in ein 1D-Array mit 784 Werten um.
  • Dicht: Eine dichte Schicht ist eine vollständig verbundene Schicht. Hier haben wir 128 Neuronen in der verborgenen Schicht und 10 Neuronen in der Ausgabeschicht (weil wir 10 Ziffernklassen haben). Wir verwenden ReLU als Aktivierungsfunktion für die verborgene Ebene und Softmax für die Ausgabeebene.

Schritt 6: Kompilieren Sie das Modell

Als nächstes müssen wir das Modell kompilieren. Hier spezifizieren wir den Optimierer, die Verlustfunktion und die Bewertungsmetriken.

# Load the MNIST dataset
mnist = tf.keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
  • Adam Optimierer: Dies ist ein beliebter Optimierer für das Training von Deep-Learning-Modellen.
  • Spärliche kategoriale Kreuzentropie: Diese Verlustfunktion wird für Klassifizierungsprobleme mit mehreren Klassen wie unseres verwendet.
  • Genauigkeit: Wir verwenden die Genauigkeit als Metrik, um die Leistung des Modells zu bewerten.

Schritt 7: Trainieren Sie das Modell

Jetzt sind wir bereit, das Modell zu trainieren! Wir trainieren es für 5 Epochen (d. h. das Modell durchläuft den gesamten Trainingsdatensatz fünfmal).

# Normalize pixel values to be between 0 and 1
train_images = train_images / 255.0
test_images = test_images / 255.0

Schritt 8: Bewerten Sie das Modell

Sobald das Modell trainiert ist, können wir seine Leistung anhand der Testdaten bewerten.

# 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)
])

Dadurch erhalten wir die Genauigkeit des Modells im Testdatensatz.


5. Was passiert hinter den Kulissen?

Um es einfach auszudrücken:

  1. Datenvorverarbeitung: Wir haben die Daten normalisiert, um das Training effizienter zu gestalten.
  2. Modelldefinition: Wir haben ein einfaches Feedforward-Neuronales Netzwerk mithilfe der Sequential API erstellt.
  3. Zusammenstellung: Wir haben die richtige Verlustfunktion und den richtigen Optimierer ausgewählt, um das Lernen des Modells zu steuern.
  4. Training: Das Modell hat über mehrere Durchgänge durch den Datensatz gelernt, Bilder Ziffern zuzuordnen.
  5. Bewertung: Abschließend haben wir überprüft, wie gut sich das Modell auf nicht sichtbare Daten verallgemeinern lässt.

6. Wohin geht es von hier aus?

Keras vereinfacht den Aufbau und das Training neuronaler Netze und ist somit ein idealer Ausgangspunkt für Anfänger. Sobald Sie mit grundlegenden Modellen vertraut sind, können Sie mit komplexeren Architekturen wie Convolutional Neural Networks (CNNs) und Recurrent Neural Networks (RNNs) experimentieren.

Tauchen Sie mit Keras tiefer in die Welt des Deep Learning ein, experimentieren Sie mit verschiedenen Modellen und erweitern Sie die Grenzen des Möglichen!


Was haltet ihr bisher von Keras?

Das obige ist der detaillierte Inhalt vonKeras: Die Grundlagen anhand eines detaillierten Beispiels verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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