機器學習 (ML) 迅速改變了軟體開發的世界。直到最近,由於 TensorFlow 和 PyTorch 等函式庫,Python 仍是 ML 領域的主導語言。但隨著 TensorFlow.js 的興起,JavaScript 開發人員現在可以深入令人興奮的機器學習世界,使用熟悉的語法直接在瀏覽器或 Node.js 上建立和訓練模型。
在這篇文章中,我們將探索如何開始使用 JavaScript 進行機器學習。我們將演練使用 TensorFlow.js.
建立和訓練簡單模型的範例為什麼選擇 TensorFlow.js?
TensorFlow.js 是一個開源程式庫,可讓您完全用 JavaScript 定義、訓練和執行機器學習模型。它既可以在瀏覽器中運行,也可以在 Node.js 上運行,這使得它對於各種 ML 應用程式具有難以置信的多功能性。
以下是 TensorFlow.js 令人興奮的幾個原因:
- 即時訓練:您可以直接在瀏覽器中運行模型,提供即時互動。
- 跨平台:相同的程式碼可以在伺服器和客戶端環境上運作。
- 硬體加速:它使用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中文網其他相關文章!

C 和JavaScript通過WebAssembly實現互操作性。 1)C 代碼編譯成WebAssembly模塊,引入到JavaScript環境中,增強計算能力。 2)在遊戲開發中,C 處理物理引擎和圖形渲染,JavaScript負責遊戲邏輯和用戶界面。

JavaScript在網站、移動應用、桌面應用和服務器端編程中均有廣泛應用。 1)在網站開發中,JavaScript與HTML、CSS一起操作DOM,實現動態效果,並支持如jQuery、React等框架。 2)通過ReactNative和Ionic,JavaScript用於開發跨平台移動應用。 3)Electron框架使JavaScript能構建桌面應用。 4)Node.js讓JavaScript在服務器端運行,支持高並發請求。

Python更適合數據科學和自動化,JavaScript更適合前端和全棧開發。 1.Python在數據科學和機器學習中表現出色,使用NumPy、Pandas等庫進行數據處理和建模。 2.Python在自動化和腳本編寫方面簡潔高效。 3.JavaScript在前端開發中不可或缺,用於構建動態網頁和單頁面應用。 4.JavaScript通過Node.js在後端開發中發揮作用,支持全棧開發。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。1)C 用于解析JavaScript源码并生成抽象语法树。2)C 负责生成和执行字节码。3)C 实现JIT编译器,在运行时优化和编译热点代码,显著提高JavaScript的执行效率。

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3漢化版
中文版,非常好用