使用 TensorFlow.js,不僅可以在瀏覽器中運行機器學習模型來執行推理,還可以訓練它們。在本教程中,將向您展示一個基本的 “Hello World” 示例,通過該實例開啟我們的全新旅程。
讓我們從一個最簡單的網頁開始:
完成后,需要做的第一件事是添加對 TensorFlow.js 的引用,以便我們可以在瀏覽器環境中使用 TensorFlow API。為方便起見,可以從 CDN 上獲取 JS 文件:
在寫這篇文章時使用的 TensorFlow.js 版本是 0.11.2。如果想獲取最新版本,我們可以從 GitHub 查看。
現在我們已經成功加載了 TensorFlow.js,讓我們用它做一些有趣的事情吧!
現在有一條公式為 Y = 2X-1 的直線。并提供你一組點,如(-1,-3),(0,-1),(1,1),(2,3),(3,5)和(4,7)。雖然通過公式我們可以得出給定 X 的 Y 值,我們是否可以通過機械學習模型推導出 Y 值呢?
首先,我們可以創建一個簡單的神經網絡來進行推理。由于只有 1 個輸入值和 1 個輸出值,因此它可以是單節點。在 JavaScript 中,我們可以創建一個 tf.sequential,并添加圖層定義。代碼示例如下:
const model = tf.sequential();model.add(tf.layers.dense({units: 1, inputShape: [1]}));
為了完成模型定義,我們需要執行編譯,并指定損失類型和優化器。我們將選擇最基本的損失類型 - meanSquaredError,同時優化器使用標準的
Stochastic Gradient Descent:
model.compile({loss: 'meanSquaredError', optimizer: 'sgd' });
為了訓練模型,我們需要定義張量,并指定其形狀:
const xs = tf.tensor2d([-1, 0, 1, 2, 3, 4], [6, 1]);const ys = tf.tensor2d([-3, -1, 1, 3, 5, 7], [6, 1]);
為了訓練模型,我們使用 fit 方法。為此,我們傳遞一組 X 和 Y 值,以及 epochs(循環數據)。請注意,這是異步(async/await)的,因此所有這些代碼都需要在異步函數中:
await model.fit(xs, ys, {epochs: 500});
一旦準備就緒,模型就會被訓練,我們就可以基于 X 值預測 Y。例如,如果我們想要找出 X = 10的 Y 值并將其寫在 Web 頁面上的
document.getElementById('output_field').innerText = model.predict(tf.tensor2d([10], [1, 1]));
請注意,輸入是包含值 10 的 1x1 的張量。
結果如下所示:
等等,你可能會問 —— 為什么不是 19?它非常接近,但它不是 19!這是因為該算法從未被賦予公式 —— 它只是根據給出的少量數據進行學習。有了更多的相關數據進行訓練,ML 模型就會提供更高的準確性。
為了方便起見,完整代碼如下所示:
這就是在瀏覽器環境中使用 TensorFlow.js 創建一個非常簡單的機械學習模型所需要的一切。從這里開始,我們將進入嶄新的世界!
-
神經網絡
+關注
關注
42文章
4765瀏覽量
100549 -
瀏覽器
+關注
關注
1文章
1016瀏覽量
35280 -
機器學習
+關注
關注
66文章
8381瀏覽量
132425
原文標題:快速入門 TensorFlow.js
文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論