Heim >Web-Frontend >js-Tutorial >Erste Schritte mit maschinellem Lernen in JavaScript: Ein Leitfaden für Anfänger mit TensorFlow.js
Maschinelles Lernen (ML) hat die Welt der Softwareentwicklung rasant verändert. Bis vor Kurzem war Python dank Bibliotheken wie TensorFlow und PyTorch die dominierende Sprache im ML-Bereich. Aber mit dem Aufkommen von TensorFlow.js können JavaScript-Entwickler jetzt in die aufregende Welt des maschinellen Lernens eintauchen und vertraute Syntax verwenden, um Modelle direkt im Browser oder auf Node.js zu erstellen und zu trainieren.
In diesem Blogbeitrag untersuchen wir, wie Sie mit maschinellem Lernen mithilfe von JavaScript beginnen können. Wir werden ein Beispiel für den Aufbau und das Training eines einfachen Modells mit TensorFlow.js durchgehen.
TensorFlow.js ist eine Open-Source-Bibliothek, mit der Sie Modelle für maschinelles Lernen vollständig in JavaScript definieren, trainieren und ausführen können. Es läuft sowohl im Browser als auch auf Node.js und ist somit unglaublich vielseitig für eine Vielzahl von ML-Anwendungen.
Hier sind einige Gründe, warum TensorFlow.js spannend ist:
Mal sehen, wie wir anfangen können!
Bevor Sie in den Code eintauchen, müssen Sie TensorFlow.js installieren. Sie können es über ein <script> in Ihr Projekt einbinden. tag oder npm, abhängig von Ihrer Umgebung.</p> <h3> Browser-Setup </h3> <p>Um TensorFlow.js im Browser zu verwenden, fügen Sie einfach das folgende <script> ein. Tag in Ihrer HTML-Datei:<br> </p> <pre class="brush:php;toolbar:false"><script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script> </pre> <h3> Node.js-Setup </h3> <p>Für eine Node.js-Umgebung können Sie es mit npm:<br> installieren </p> <pre class="brush:php;toolbar:false">npm install @tensorflow/tfjs </pre> <h2> 2. Aufbau eines einfachen neuronalen Netzwerkmodells </h2> <p>Lassen Sie uns ein einfaches neuronales Netzwerk erstellen, das die Ausgabe einer grundlegenden linearen Funktion y = 2x - 1 vorhersagt. Wir werden TensorFlow.js verwenden, um dieses Modell zu erstellen und zu trainieren.</p> <h3> Schritt 1: Definieren Sie das Modell </h3> <p>Wir beginnen mit der Definition eines sequentiellen Modells (eines linearen Schichtenstapels) mit einer dichten Schicht:<br> </p> <pre class="brush:php;toolbar:false">// Import TensorFlow.js import * as tf from '@tensorflow/tfjs'; // Create a simple sequential model const model = tf.sequential(); // Add a single dense layer with 1 unit (neuron) model.add(tf.layers.dense({units: 1, inputShape: [1]})); </pre> <p>Hier haben wir ein Modell mit einer dichten Schicht erstellt. Die Ebene verfügt über ein Neuron (Einheiten: 1) und erwartet ein einzelnes Eingabemerkmal (inputShape: [1]).</p> <h3> Schritt 2: Kompilieren Sie das Modell </h3> <p>Als nächstes kompilieren wir das Modell, indem wir den Optimierer und die Verlustfunktion angeben:<br> </p> <pre class="brush:php;toolbar:false">// Compile the model model.compile({ optimizer: 'sgd', // Stochastic Gradient Descent loss: 'meanSquaredError' // Loss function for regression }); </pre> <p>Wir verwenden den Stochastic Gradient Descent (SGD)-Optimierer, der für kleine Modelle effektiv ist. Die Verlustfunktion „meanSquaredError“ eignet sich für Regressionsaufgaben wie diese.</p> <h3> Schritt 3: Bereiten Sie die Trainingsdaten vor </h3> <p>Wir erstellen nun einige Trainingsdaten für die Funktion y = 2x - 1. In TensorFlow.js werden Daten in Tensoren (mehrdimensionalen Arrays) gespeichert. So können wir einige Trainingsdaten generieren:<br> </p> <pre class="brush:php;toolbar:false">// Generate some synthetic data for training const xs = tf.tensor2d([0, 1, 2, 3, 4], [5, 1]); // Inputs (x values) const ys = tf.tensor2d([1, 3, 5, 7, 9], [5, 1]); // Outputs (y values) </pre> <p>In diesem Fall haben wir einen Tensor xs mit Eingabewerten (0, 1, 2, 3, 4) und einen entsprechenden Ausgabetensor ys mit Werten erstellt, die mit y = 2x - 1 berechnet wurden.</p> <h3> Schritt 4: Trainieren Sie das Modell </h3> <p>Jetzt können wir das Modell anhand unserer Daten trainieren:<br> </p> <pre class="brush:php;toolbar:false">// Train the model model.fit(xs, ys, {epochs: 500}).then(() => { // Once training is complete, use the model to make predictions model.predict(tf.tensor2d([5], [1, 1])).print(); // Output will be close to 2*5 - 1 = 9 }); </pre> <p>Hier trainieren wir das Modell für 500 Epochen (Iterationen über die Trainingsdaten). Nach dem Training verwenden wir das Modell, um die Ausgabe für einen Eingabewert von 5 vorherzusagen, der einen Wert nahe 9 (y = 2*5 – 1 = 9) zurückgeben sollte.</p> <h2> 3. Ausführen des Modells im Browser </h2> <p>Um dieses Modell im Browser auszuführen, benötigen Sie eine HTML-Datei, die die TensorFlow.js-Bibliothek und Ihren JavaScript-Code enthält:<br> </p> <pre class="brush:php;toolbar:false"><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>TensorFlow.js Example</title> <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script> <script defer src="app.js"></script>