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!
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.
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.
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.
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
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.
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.
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
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
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()
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
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.
Um es einfach auszudrücken:
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!