首頁  >  文章  >  web前端  >  JavaScript 機器學習入門:TensorFlow.js 初學者指南

JavaScript 機器學習入門:TensorFlow.js 初學者指南

Barbara Streisand
Barbara Streisand原創
2024-09-25 12:18:18372瀏覽

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. 硬體加速:它使用WebGL進行GPU加速,從而加快運算速度。

讓我們看看如何開始吧!

1. 設定 TensorFlow.js

在深入研究程式碼之前,您需要安裝TensorFlow.js。您可以透過 <script> 將其包含在您的專案中tag 或 npm,具體取決於您的環境。 </script>

瀏覽器設定

要在瀏覽器中使用 TensorFlow.js,只需包含以下 <script> 即可: HTML 檔案中的標籤:<br> </script>

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>

Node.js 設定

對於 Node.js 環境,您可以使用 npm 安裝它:

npm install @tensorflow/tfjs

2. 建構簡單的神經網路模型

讓我們建立一個簡單的神經網路來預測基本線性函數 y = 2x - 1 的輸出。我們將使用 TensorFlow.js 來建立和訓練該模型。

第 1 步:定義模型

我們先定義一個具有一個密集層的順序模型(線性堆疊):

// 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]}));

在這裡,我們建立了一個具有一層緻密層的模型。此層有一個神經元(單位:1),並且需要一個輸入特徵(inputShape:[1])。

第 2 步:編譯模型

接下來,我們透過指定最佳化器和損失函數來編譯模型:

// Compile the model
model.compile({
  optimizer: 'sgd',  // Stochastic Gradient Descent
  loss: 'meanSquaredError'  // Loss function for regression
});

我們使用隨機梯度下降(SGD)優化器,這對於小模型非常有效。損失函數meanSquaredError適用於像這樣的迴歸任務。

第 3 步:準備訓練數據

我們現在將為函數 y = 2x - 1 建立一些訓練資料。在 TensorFlow.js 中,資料儲存在張量(多維數組)中。以下是我們產生一些訓練資料的方法:

// 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)

在本例中,我們建立了一個具有輸入值(0, 1, 2, 3, 4) 的張量xs 和一個對應的輸出張量ys,其值使用y = 2x - 1 計算得出。

第 4 步:訓練模型

現在,我們可以根據我們的資料訓練模型:

// Train the model
model.fit(xs, ys, {epochs: 500}).then(() => {
  // 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
});

在這裡,我們訓練模型 500 個時期(訓練資料的迭代)。訓練後,我們使用模型來預測輸入值為 5 的輸出,這應該會傳回一個接近 9 的值 (y = 2*5 - 1 = 9)。

3. 在瀏覽器中運行模型

要在瀏覽器中執行此模型,您需要一個包含 TensorFlow.js 程式庫和 JavaScript 程式碼的 HTML 檔案:




    
    
    TensorFlow.js Example
    <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>
      


    

Simple Neural Network with TensorFlow.js

並且在您的 app.js 檔案中,您可以包含上面的模型建置和訓練程式碼。

以上是JavaScript 機器學習入門:TensorFlow.js 初學者指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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