Home >Backend Development >Python Tutorial >Bridging Machine Learning with TensorFlow: From Python to JavaScript
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 つです。最終的には特定の使用例によって選択が決まりますが、私はシンプルにして、今のところこのアプローチに固執しています。
モデルを構築する場合、取り組む必要のある基本的なタスクがいくつかあります。
次のコードは、これらのタスクの概要を示していますが、完全な図ではありません。完全なコードは Github で確認できます。
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
ls -la out/public group1-shard1of1.bin model.json
この設定により、Web アプリケーションに必要なファイルに簡単にアクセスできるようになります。
完全なコードは 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!