ホームページ > バックエンド開発 > Python チュートリアル > TensorFlow による機械学習の橋渡し: Python から JavaScript へ

TensorFlow による機械学習の橋渡し: Python から JavaScript へ

Barbara Streisand
リリース: 2024-10-01 06:15:29
オリジナル
969 人が閲覧しました

Bridging Machine Learning with TensorFlow: From Python to JavaScript

使用 TensorFlow 將機器學習帶入生活

身為 JavaScript 開發人員,深入研究機器學習並不像看起來那麼令人畏懼。雖然在技術上可以使用 Node.js 套件處理所有事情,但 Python ML 生態系統太豐富且完善,不容忽視。另外,Python 的使用起來非常方便。因此,使用 Python 來處理後端的繁重工作是有意義的。準備好模型後,您可以將其匯出為前端友好的格式並將其加載到客戶端上以運行預測。

生成模型

在這篇文章中,我們將建立一個模型,根據藝術家的 Twitter 粉絲數量來預測他們的受歡迎程度。

第一步是取得資料集。對於此項目,我們將使用如下所示的 arts.csv 檔案:

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
ログイン後にコピー

如您所見,這裡有兩個關鍵值:twitter_followers 和受歡迎程度。這很好地為我們建立了序列模型,其中 x 將是 twitter_followers,y 將是流行度。

序列模型是建構模型最簡單的選項之一。雖然選擇最終取決於特定的用例,但我現在保持簡單並堅持使用這種方法。

建構後端

建立模型時,您需要解決一些基本任務:

  • 清理或標準化資料
  • 將資料分為訓練 (80%) 和測驗 (20%)
  • 選擇模型以及最佳化器和損失函數等設定
  • 訓練模型(擬合)
  • 評估模型
  • 保存模型

下面的程式碼讓您很好地概述了這些任務,儘管它不是完整的圖片。您可以在 Github 上查看完整程式碼。

Python: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")
ログイン後にコピー

如您所見,Python 程式碼非常簡單。有一個主要函數處理資料的分割、取得模型、評估它,最後保存它。

簡而言之,這些是創建模型的基本步驟。但讓我們面對現實:建立一個真正有效的模型既是一門藝術,也是一門科學。我的目標只是展示 Python 入門是多麼容易。然而,要創建一個性能良好的模型,需要做很多工作,例如擁有可靠的資料集、清理和標準化資料、選擇正確的模型和設置,以及擁有訓練它的計算能力。所有這些任務都需要投入大量的時間和精力!

在前端使用模型

現在我們已經訓練並保存了模型,是時候將其引入前端了。在這一步驟中,我們將以網路友好的格式載入模型,以便我們可以直接在瀏覽器中執行預測。無論您使用 TensorFlow.js 還是其他程式庫,將機器學習整合到您的 Web 應用程式中都會開啟一個充滿可能性的世界。讓我們深入探討如何做到這一點!

TensorFlow 提供了一個名為 tensorflowjs_converter 的 npm 包,可協助將已儲存的模型轉換為 JSON 和二進位。

tensorflowjs_converter --input_format=tf_saved_model model/saved_model out/public
ログイン後にコピー
  • tf_saved_model:這是用來保存模型的格式。
  • model/saved_model:這是執行Python程式碼時保存模型的目錄。
  • out/public:這是保存前端友善檔案的輸出目錄。資料夾結構將如下所示:
ls -la out/public

group1-shard1of1.bin
model.json
ログイン後にコピー

此設定可以輕鬆存取 Web 應用程式所需的檔案。

JavaScript:使用 TensorFlowJS

您可以在 Github 上查看完整程式碼。

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;
};
ログイン後にコピー

如前所述,該模型旨在根據 Twitter 追蹤者數量「預測受歡迎程度」。雖然它看起來像是一個簡單的範例,但它有效地演示瞭如何在後端生成模型並在前端使用它。

稍微看一下 getPopularity 如何處理輸入,但關鍵一行是 model.predict(x),它使用模型根據輸入 x 預測一個值 (y)。

前往示範頁面並嘗試一些 Twitter 手把。這是一種有趣的方式來了解模型如何根據追蹤者數量預測受歡迎程度。

結論

TensorFlow 是一個很棒的函式庫,為後端和前端開發提供了工具。任何 JavaScript 開發人員都可以深入使用 Python 或類似語言建立模型,然後輕鬆將模型匯入前端以運行預測。

機械学習は多くの知識を必要とする広大な分野ですが、TensorFlow のようなツールは、ソフトウェア開発者と機械学習開発者の間のギャップを埋めるのに役立ちます。これにより、プロジェクトに ML を組み込みたいと考えている人にとって、その作業が非常にスムーズになります!

以上がTensorFlow による機械学習の橋渡し: Python から JavaScript への詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート