首頁 >後端開發 >Python教學 >連接機器學習與 TensorFlow:從 Python 到 JavaScript

連接機器學習與 TensorFlow:從 Python 到 JavaScript

Barbara Streisand
Barbara Streisand原創
2024-10-01 06:15:29970瀏覽

Bridging Machine Learning with TensorFlow: From Python to JavaScript

Erwecken Sie maschinelles Lernen mit TensorFlow zum Leben

Als JavaScript-Entwickler ist der Einstieg in maschinelles Lernen nicht so entmutigend, wie es scheint. Obwohl es technisch möglich ist, alles mit Node.js-Paketen zu bewältigen, ist das Python-ML-Ökosystem einfach zu umfangreich und etabliert, um es zu ignorieren. Außerdem macht es viel Spaß, mit Python zu arbeiten. Daher ist es sinnvoll, Python für die schwere Arbeit im Backend zu verwenden. Sobald Sie Ihr Modell fertig haben, können Sie es in ein Front-End-freundliches Format exportieren und auf den Client laden, um Vorhersagen auszuführen.

Generieren eines Modells

In diesem Beitrag werden wir ein Modell erstellen, um die Popularität eines Künstlers basierend auf seiner Anzahl an Twitter-Followern vorherzusagen.

Der erste Schritt besteht darin, einen Datensatz in die Hände zu bekommen. Für dieses Projekt verwenden wir eine artist.csv-Datei, die so aussieht:

twitter_followers,popularity,handle
111024636,94,justinbieber
107920365,91,rihanna
106599902,89,katyperry
95307659,97,taylorswift13
66325495,87,selenagomez
66325135,71,selenagomez
60943147,83,jtimberlake
54815915,82,britneyspears
53569307,85,shakira

Wie Sie sehen, gibt es hier zwei Schlüsselwerte: Twitter_Follower und Popularität. Dies bereitet uns gut auf ein Sequenzmodell vor, bei dem x für Twitter_Follower und y für Beliebtheit steht.

Sequenzmodell ist eine der einfachsten Optionen zum Erstellen eines Modells. Auch wenn die Wahl letztendlich vom konkreten Anwendungsfall abhängt, halte ich es einfach und bleibe vorerst bei diesem Ansatz.

Aufbau des Backends

Wenn Sie ein Modell erstellen, müssen Sie einige grundlegende Aufgaben bewältigen:

  • Daten bereinigen oder normalisieren
  • Teilen Sie die Daten in Training (80 %) und Tests (20 %) auf
  • Wählen Sie ein Modell zusammen mit Einstellungen wie Optimierer und Verlustfunktion
  • Trainieren Sie das Modell (Fit)
  • Bewerten Sie das Modell
  • Speichern Sie das Modell

Der folgende Code gibt Ihnen einen guten Überblick über diese Aufgaben, obwohl er nicht das vollständige Bild darstellt. Den vollständigen Code finden Sie auf Github.

Python: Erste Schritte mit TensorFlow

def get_model(x, y):
    x_normalized = layers.Normalization(
        axis=None,
    )
    x_normalized.adapt(np.array(x))

    model = tensorflow.keras.Sequential([x_normalized, layers.Dense(units=1)])

    model.compile(
        optimizer=tensorflow.keras.optimizers.Adam(learning_rate=0.1),
        loss="mean_squared_error",
    )

    model.fit(
        x,
        y,
        epochs=2,
        verbose=0,
        validation_split=0.2,
    )

    return model

def main:
  train_features, test_features, train_labels, test_labels = split_data(dataset)

  model = get_model(
      train_features["twitter_followers"],
      train_labels,
  )

  test_loss = model.evaluate(
      test_features["twitter_followers"], test_labels, verbose=2
  )

  model.export("./saved_model")

Wie Sie sehen können, ist der Python-Code ziemlich einfach. Es gibt eine Hauptfunktion, die das Aufteilen der Daten, das Abrufen des Modells, das Auswerten und schließlich das Speichern übernimmt.

Kurz gesagt sind dies die wesentlichen Schritte zur Erstellung eines Modells. Aber seien wir ehrlich: Ein Modell zu bauen, das tatsächlich funktioniert, ist sowohl eine Kunst als auch eine Wissenschaft. Mein Ziel hier ist es einfach zu zeigen, wie einfach der Einstieg in Python sein kann. Um ein Modell zu erstellen, das eine gute Leistung erbringt, gehört jedoch viel dazu: ein solider Datensatz, die Bereinigung und Normalisierung Ihrer Daten, die Auswahl des richtigen Modells und der richtigen Einstellungen sowie die Rechenleistung, um es zu trainieren. All diese Aufgaben erfordern einen erheblichen Zeit- und Arbeitsaufwand!

Konsumieren des Modells im Frontend

Da wir nun unser Modell trainiert und gespeichert haben, ist es an der Zeit, es in das Frontend zu integrieren. In diesem Schritt laden wir das Modell in einem webfreundlichen Format, damit wir Vorhersagen direkt im Browser ausführen können. Unabhängig davon, ob Sie TensorFlow.js oder eine andere Bibliothek verwenden, eröffnet die Integration von maschinellem Lernen in Ihre Web-App eine Welt voller Möglichkeiten. Schauen wir uns an, wie das geht!

TensorFlow bietet ein npm-Paket namens tensorflowjs_converter an, das bei der Konvertierung gespeicherter Modelle in JSON und Binärdateien hilft.

tensorflowjs_converter --input_format=tf_saved_model model/saved_model out/public
  • tf_saved_model: Dies ist das Format, das zum Speichern des Modells verwendet wird.
  • model/saved_model: Dies ist das Verzeichnis, in dem das Modell gespeichert wurde, als der Python-Code ausgeführt wurde.
  • out/public: Dies ist das Ausgabeverzeichnis, in dem die Frontend-freundlichen Dateien gespeichert werden. Die Ordnerstruktur sieht folgendermaßen aus:
ls -la out/public

group1-shard1of1.bin
model.json

Dieses Setup erleichtert den Zugriff auf die erforderlichen Dateien für Ihre Webanwendung.

Javascript: Verwendung von TensorFlowJS

Sie können den vollständigen Code auf Github ansehen.

const model = await tensorflow.loadGraphModel("model.json");

const getPopularity = (followers) => {
  const followers = 1_000;
  const normalized = followers;
  const x = tensorflow.tensor(normalized).reshape([-1, 1]);

  const result = model.predict(x);
  const values = result.arraySync();

  const y = values[0][0].toFixed(2) * 100;
  const popularity = y;

  return popularity;
};

Wie bereits erwähnt, zielt dieses Modell darauf ab, „Beliebtheit“ basierend auf der Anzahl der Twitter-Follower vorherzusagen. Obwohl es wie ein einfaches Beispiel erscheinen mag, zeigt es effektiv, wie man ein Modell im Backend generiert und es im Frontend nutzt.

Sehen Sie sich an, wie getPopularity die Eingabe ein wenig verarbeitet, aber die Schlüsselzeile ist model.predict(x), die das Modell verwendet, um einen Wert (y) basierend auf der Eingabe x vorherzusagen.

Gehen Sie zur Demoseite und probieren Sie ein paar Twitter-Handles aus. Es ist eine unterhaltsame Möglichkeit zu sehen, wie das Modell die Beliebtheit basierend auf der Anzahl der Follower vorhersagt.

Abschluss

TensorFlow ist eine großartige Bibliothek, die Tools für die Backend- und Frontend-Entwicklung bereitstellt. Jeder JavaScript-Entwickler kann mit Python oder einer ähnlichen Sprache ein Modell erstellen und dieses Modell dann einfach in das Frontend importieren, um Vorhersagen auszuführen.

雖然機器學習是一個廣闊的領域,需要大量知識,但像 TensorFlow 這樣的工具有助於彌合軟體和機器學習開發人員之間的差距。對於那些希望將 ML 融入他們的專案中的人來說,這讓旅程變得更加順利!

以上是連接機器學習與 TensorFlow:從 Python 到 JavaScript的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn