TensorFlow ist ein beliebtes Framework für maschinelles Lernen, das zum Training und Einsatz verschiedener neuronaler Netze verwendet wird. In diesem Artikel wird erläutert, wie Sie mit TensorFlow ein einfaches neuronales Netzwerk aufbauen, und Beispielcode für den Einstieg bereitgestellt.
Der erste Schritt beim Aufbau eines neuronalen Netzwerks besteht darin, die Struktur des Netzwerks zu definieren. In TensorFlow können wir das tf.keras-Modul verwenden, um die Schichten eines neuronalen Netzwerks zu definieren. Das folgende Codebeispiel definiert ein vollständig verbundenes Feedforward-Neuronales Netzwerk mit zwei verborgenen Schichten und einer Ausgabeschicht: „Python Tensorflow astf importieren model = tf.keras.models.Sequential([ tf.keras.layers.Dense(units=64, activate='relu', input_shape=(input_dim,)), tf.keras.layers.Dense(units=32, activate='relu'), tf.keras.layers.Dense(units=output_dim, activate='softmax') ]) „ Im obigen Code verwenden wir das „Sequential“-Modell, um das neuronale Netzwerk aufzubauen. Die „Dense“-Schicht stellt eine vollständig verbundene Schicht dar und gibt die Anzahl der Neuronen (Einheiten) und die Aktivierungsfunktion (Aktivierung) jeder Schicht an. Die Eingabeform der ersten verborgenen Ebene wird durch „input_shape
import tensorflow as tf model = tf.keras.Sequential([ tf.keras.layers.Dense(64, activation='relu', input_shape=(784,)), tf.keras.layers.Dense(64, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ])
“ angegeben. In diesem Beispiel verwenden wir das sequentielle Modell, um unser neuronales Netzwerk zu definieren. Es handelt sich um ein einfaches Stapelmodell, bei dem jede Schicht auf der vorherigen Schicht aufbaut. Wir definieren drei Schichten, die erste und die zweite Schicht sind beide vollständig verbundene Schichten mit 64 Neuronen und sie verwenden die ReLU-Aktivierungsfunktion. Die Form der Eingabeebene ist (784), da wir den MNIST-Datensatz handgeschriebener Ziffern verwenden werden und jedes Bild in diesem Datensatz 28 x 28 Pixel groß ist, was sich auf 784 Pixel erweitert. Die letzte Schicht ist eine vollständig verbundene Schicht mit 10 Neuronen, die eine Softmax-Aktivierungsfunktion verwendet und für Klassifizierungsaufgaben wie die Ziffernklassifizierung im MNIST-Datensatz verwendet wird.
Wir müssen das Modell kompilieren und den Optimierer, die Verlustfunktion und die Bewertungsmetriken angeben. Hier ist das Beispiel:
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
In diesem Beispiel verwenden wir den Adam-Optimierer, um unser Modell mithilfe der Kreuzentropie als Verlustfunktion für ein Klassifizierungsproblem mit mehreren Klassen zu trainieren. Wir haben auch die Genauigkeit als Bewertungsmetrik angegeben, um die Leistung des Modells während des Trainings und der Bewertung zu verfolgen.
Da wir nun die Struktur und Trainingskonfiguration des Modells definiert haben, können wir die Daten lesen und mit dem Training des Modells beginnen. Als Beispiel verwenden wir den handschriftlichen Zifferndatensatz von MNIST. Hier ist das Codebeispiel:
from tensorflow.keras.datasets import mnist (train_images, train_labels), (test_images, test_labels) = mnist.load_data() train_images = train_images.reshape((60000, 784)) train_images = train_images.astype('float32') / 255 test_images = test_images.reshape((10000, 784)) test_images = test_images.astype('float32') / 255 train_labels = tf.keras.utils.to_categorical(train_labels) test_labels = tf.keras.utils.to_categorical(test_labels) model.fit(train_images, train_labels, epochs=5, batch_size=64)
In diesem Beispiel verwenden wir die Funktion mnist.load_data(), um den MNIST-Datensatz zu laden. Anschließend haben wir die Trainings- und Testbilder auf 784 Pixel reduziert und die Pixelwerte auf einen Wert zwischen 0 und 1 skaliert. Wir kodieren die Etiketten auch einmal im laufenden Betrieb, um sie in eine Klassifizierungsaufgabe umzuwandeln. Schließlich verwenden wir die Fit-Funktion, um unser Modell zu trainieren, indem wir Trainingsbilder und Beschriftungen verwenden, das Training für 5 Epochen spezifizieren und 64 Proben für jede Epoche verwenden.
Nachdem das Training abgeschlossen ist, können wir die Funktion „evaluieren“ verwenden, um die Leistung des Modells im Testsatz zu bewerten:
test_loss, test_acc = model.evaluate(test_images, test_labels) print('Test accuracy:', test_acc)
In diesem Beispiel rufen wir die Funktion „evaluieren“ mit dem Testbild und der Beschriftung auf und drucken die Ergebnisse aus, um sie anzuzeigen Die Leistung des Modells in Bezug auf die Testsatzgenauigkeit des Satzes.
Dies ist ein einfaches Beispiel dafür, wie man mit TensorFlow ein neuronales Netzwerk aufbaut und trainiert. Natürlich benötigen Sie in realen Anwendungen möglicherweise komplexere Netzwerkstrukturen und komplexere Datensätze. Dieses Beispiel bietet jedoch einen guten Ausgangspunkt, um Ihnen zu helfen, die grundlegende Verwendung von TensorFlow zu verstehen.
Das vollständige Codebeispiel lautet wie folgt:
import tensorflow as tf from tensorflow.keras.datasets import mnist # Define the model architecture model = tf.keras.Sequential([ tf.keras.layers.Dense(64, activation='relu', input_shape=(784,)), tf.keras.layers.Dense(64, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ]) # Compile the model model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # Load the data (train_images, train_labels), (test_images, test_labels) = mnist.load_data() train_images = train_images.reshape((60000, 784)) train_images = train_images.astype('float32') / 255 test_images = test_images.reshape((10000, 784)) test_images = test_images.astype('float32') / 255 train_labels = tf.keras.utils.to_categorical(train_labels) test_labels = tf.keras.utils.to_categorical(test_labels) # Train the model model.fit(train_images, train_labels, epochs=5, batch_size=64) # Evaluate the model test_loss, test_acc = model.evaluate(test_images, test_labels) print('Test accuracy:', test_acc)
Das Obige ist der Beispielcode für den Aufbau eines neuronalen Netzwerks mit TensorFlow, das unter Verwendung von MNIST ein vollständig verbundenes neuronales Feed-Forward-Netzwerk mit zwei verborgenen Schichten und einer Ausgabeschicht definiert handgeschriebene Zifferndaten Der Satz wird mit dem Adam-Optimierer und der Kreuzentropieverlustfunktion trainiert und getestet. Die endgültige Ausgabe ist die Genauigkeit des Testsatzes.
Das obige ist der detaillierte Inhalt vonSo bauen Sie mit TensorFlow ein neuronales Netzwerk auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!