ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript での機械学習入門: TensorFlow.js の初心者ガイド

JavaScript での機械学習入門: TensorFlow.js の初心者ガイド

Barbara Streisand
Barbara Streisandオリジナル
2024-09-25 12:18:18494ブラウズ

Getting Started with Machine Learning in JavaScript: A Beginner’s Guide with TensorFlow.js

機械学習 (ML) は、ソフトウェア開発の世界を急速に変革しました。 TensorFlow や PyTorch などのライブラリのおかげで、最近まで Python は ML 分野で主流の言語でした。しかし、TensorFlow.js の登場により、JavaScript 開発者は、使い慣れた構文を使用して、ブラウザーまたは Node.js で直接モデルを構築およびトレーニングし、エキサイティングな機械学習の世界に飛び込むことができるようになりました。

このブログ投稿では、JavaScript を使用して機械学習を始める方法を説明します。 TensorFlow.js を使用して単純なモデルを構築およびトレーニングする例を見ていきます。

TensorFlow.js を使用する理由

TensorFlow.js は、機械学習モデルを完全に JavaScript で定義、トレーニング、実行できるオープンソース ライブラリです。ブラウザーと Node.js の両方で実行できるため、幅広い ML アプリケーションに非常に多用途です。

TensorFlow.js が魅力的な理由をいくつか挙げます:

  1. リアルタイム トレーニング: ブラウザーでモデルを直接実行でき、リアルタイムの対話性を提供します。
  2. クロスプラットフォーム: 同じコードをサーバー環境とクライアント環境の両方で実行できます。
  3. ハードウェア アクセラレーション: GPU アクセラレーションに WebGL を使用し、計算を高速化します。

始め方を見てみましょう!

1. TensorFlow.js のセットアップ

コードに入る前に、TensorFlow.js をインストールする必要があります。 <script> を介してプロジェクトにこれを含めることができます。 tag または npm (環境に応じて)。</p> <h3> ブラウザのセットアップ </h3> <p>ブラウザで TensorFlow.js を使用するには、次の <script> をインクルードするだけです。 HTML ファイル内のタグ:<br> </p> <pre class="brush:php;toolbar:false">&lt;script src=&quot;https://cdn.jsdelivr.net/npm/@tensorflow/tfjs&quot;&gt;&lt;/script&gt; </pre> <h3> Node.jsのセットアップ </h3> <p>Node.js 環境の場合は、npm:<br> を使用してインストールできます。 </p> <pre class="brush:php;toolbar:false">npm install @tensorflow/tfjs </pre> <h2> 2. 単純なニューラル ネットワーク モデルの構築 </h2> <p>基本的な線形関数 y = 2x - 1 の出力を予測する単純なニューラル ネットワークを作成しましょう。このモデルの作成とトレーニングには TensorFlow.js を使用します。</p> <h3> ステップ 1: モデルを定義する </h3> <p>まず、1 つの高密度レイヤーを含むシーケンシャル モデル (レイヤーの線形スタック) を定義します。<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>ここでは、1 つの高密度レイヤーを持つモデルを作成しました。この層には 1 つのニューロン (単位: 1) があり、単一の入力特徴 (inputShape: [1]) が必要です。</p> <h3> ステップ 2: モデルをコンパイルする </h3> <p>次に、オプティマイザと損失関数を指定してモデルをコンパイルします。<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>小規模モデルに効果的な確率的勾配降下 (SGD) オプティマイザーを使用します。損失関数 meansSquaredError は、このような回帰タスクに適しています。</p> <h3> ステップ 3: トレーニング データを準備する </h3> <p>ここで、関数 y = 2x - 1 のトレーニング データを作成します。TensorFlow.js では、データはテンソル (多次元配列) に保存されます。トレーニング データを生成する方法は次のとおりです:<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>この場合、入力値 (0、1、2、3、4) を持つテンソル xs と、y = 2x - 1 を使用して計算された値を持つ対応する出力テンソル ys を作成しました。</p> <h3> ステップ 4: モデルをトレーニングする </h3> <p>これで、データに基づいてモデルをトレーニングできます。<br> </p> <pre class="brush:php;toolbar:false">// Train the model model.fit(xs, ys, {epochs: 500}).then(() =&gt; { // 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>ここでは、モデルを 500 エポック (トレーニング データの反復) トレーニングします。トレーニング後、モデルを使用して入力値 5 の出力を予測します。これは 9 (y = 2*5 - 1 = 9) に近い値を返すはずです。</p> <h2> 3. ブラウザでのモデルの実行 </h2> <p>このモデルをブラウザで実行するには、TensorFlow.js ライブラリと JavaScript コードを含む HTML ファイルが必要です。<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> &lt;script src=&quot;https://cdn.jsdelivr.net/npm/@tensorflow/tfjs&quot;&gt;&lt;/script&gt; <script defer src="app.js"></script>

Simple Neural Network with TensorFlow.js

app.js ファイルには、上記のモデル構築コードとトレーニング コードを含めることができます。

以上がJavaScript での機械学習入門: TensorFlow.js の初心者ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。