機器學習 (ML) 迅速改變了軟體開發的世界。直到最近,由於 TensorFlow 和 PyTorch 等函式庫,Python 仍是 ML 領域的主導語言。但隨著 TensorFlow.js 的興起,JavaScript 開發人員現在可以深入令人興奮的機器學習世界,使用熟悉的語法直接在瀏覽器或 Node.js 上建立和訓練模型。
在這篇文章中,我們將探索如何開始使用 JavaScript 進行機器學習。我們將演練使用 TensorFlow.js.
建立和訓練簡單模型的範例TensorFlow.js 是一個開源程式庫,可讓您完全用 JavaScript 定義、訓練和執行機器學習模型。它既可以在瀏覽器中運行,也可以在 Node.js 上運行,這使得它對於各種 ML 應用程式具有難以置信的多功能性。
以下是 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 環境,您可以使用 npm 安裝它:
npm install @tensorflow/tfjs
讓我們建立一個簡單的神經網路來預測基本線性函數 y = 2x - 1 的輸出。我們將使用 TensorFlow.js 來建立和訓練該模型。
我們先定義一個具有一個密集層的順序模型(線性堆疊):
// 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])。
接下來,我們透過指定最佳化器和損失函數來編譯模型:
// Compile the model model.compile({ optimizer: 'sgd', // Stochastic Gradient Descent loss: 'meanSquaredError' // Loss function for regression });
我們使用隨機梯度下降(SGD)優化器,這對於小模型非常有效。損失函數meanSquaredError適用於像這樣的迴歸任務。
我們現在將為函數 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 計算得出。
現在,我們可以根據我們的資料訓練模型:
// 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)。
要在瀏覽器中執行此模型,您需要一個包含 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中文網其他相關文章!