Home >Backend Development >Python Tutorial >Bridging Machine Learning with TensorFlow: From Python to JavaScript

Bridging Machine Learning with TensorFlow: From Python to JavaScript

Barbara Streisand
Barbara StreisandOriginal
2024-10-01 06:15:29971browse

Bridging Machine Learning with TensorFlow: From Python to JavaScript

TensorFlow で機械学習を実現する

JavaScript 開発者として、機械学習に飛び込むのは、思っているほど難しいことではありません。 Node.js パッケージを使用してすべてを処理することは技術的には可能ですが、Python ML エコシステムは無視するにはあまりにも豊富で確立されています。さらに、Python は非常に使いやすいです。したがって、バックエンドでの重労働には Python を使用するのが合理的です。モデルの準備ができたら、それをフロントエンドに適した形式にエクスポートし、クライアントにロードして予測を実行できます。

モデルの生成

この投稿では、Twitter のフォロワー数に基づいてアーティストの人気を予測するモデルを構築します。

最初のステップは、データセットを入手することです。このプロジェクトでは、次のような Artist.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

ご覧のとおり、ここには 2 つの重要な値があります:twitter_followers と Popularity。これにより、シーケンス モデルが適切に設定されます。x は twitter_followers、y は人気になります。

シーケンス モデル は、モデルを構築するための最も簡単なオプションの 1 つです。最終的には特定の使用例によって選択が決まりますが、私はシンプルにして、今のところこのアプローチに固執しています。

バックエンドの構築

モデルを構築する場合、取り組む必要のある基本的なタスクがいくつかあります。

  • データをクリーンアップまたは正規化します
  • データをトレーニング (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 コードは非常に簡単です。データの分割、モデルの取得、評価、そして最終的な保存を処理する main 関数があります。

簡単に言うと、これらはモデルを作成するための重要な手順です。しかし、現実的に考えてみましょう。実際に機能するモデルを構築することは、芸術であると同時に科学でもあります。ここでの私の目標は、Python を使い始めるのがいかに簡単かを示すことです。ただし、良好なパフォーマンスを発揮するモデルを作成するには、堅牢なデータセットの用意、データのクリーニングと正規化、適切なモデルと設定の選択、トレーニングするためのコンピューティング能力の確保など、多くのことが必要になります。これらすべてのタスクには、多大な時間と労力の投資が必要です!

フロントエンドでのモデルの使用

モデルをトレーニングして保存したので、次はそれをフロントエンドに取り込みます。このステップでは、モデルを Web に適した形式で読み込みます。これにより、ブラウザーで直接予測を実行できるようになります。 TensorFlow.js を使用している場合でも、別のライブラリを使用している場合でも、機械学習を Web アプリに統合すると、可能性の世界が広がります。その方法を詳しく見ていきましょう!

TensorFlow は、保存されたモデルを JSON およびバイナリに変換するのに役立つ tensorflowjs_converter という npm パッケージを提供します。

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のフォロワー数に基づいて「人気を予測する」ことを目的としています。これは単純な例のように思えるかもしれませんが、バックエンドでモデルを生成し、それをフロントエンドで使用する方法を効果的に示しています。

get Popularity が入力をどのように処理するかを少し見てみましょう。しかし、重要な行は、model.predict(x) です。これは、モデルを使用して、入力 x に基づいて値 (y) を予測します。

デモ ページにアクセスして、いくつかの Twitter ハンドルを試してください。モデルがフォロワー数に基づいて人気をどのように予測するかを確認するのは楽しい方法です。

結論

TensorFlow は、バックエンドとフロントエンドの両方の開発のためのツールを提供する素晴らしいライブラリです。 JavaScript 開発者は、Python または同様の言語を使用してモデルの作成に取り組み、そのモデルをフロントエンドに簡単にインポートして予測を実行できます。

While machine learning is a vast field that requires a lot of knowledge, tools like TensorFlow help bridge the gap between software and machine learning developers. It makes the journey a lot smoother for those looking to incorporate ML into their projects!

The above is the detailed content of Bridging Machine Learning with TensorFlow: From Python to JavaScript. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn