TensorFlow.js 是一個開源硬體加速 JavaScript 函式庫,用於訓練和部署機器學習模型。
在瀏覽器中開發 ML
使用靈活直覺的 API,使用低階 JavaScript 線性代數函式庫或高階層 API 從頭開始建立模型。
在 Node.js 中開發 ML
在 Node.js 運行時下使用相同的 TensorFlow.js API 執行本機 TensorFlow。
運行現有模型
使用 TensorFlow.js 模型轉換器直接在瀏覽器中執行預先存在的 TensorFlow 模型。
重新訓練現有模型
使用連接到瀏覽器的感測器資料或其他用戶端資料重新訓練預先存在的 ML 模型。
此儲存庫包含組合多個套件的邏輯和腳本。
蜜蜂:
後端/平台:
如果您關心捆綁包的大小,則可以單獨匯入這些包。
如果您正在尋找 Node.js 支持,請查看 TensorFlow.js Node 目錄。
查看我們的範例儲存庫和教學課程。
請務必查看與 TensorFlow.js 相關的所有專案的圖庫。
請務必查看我們的模型儲存庫,我們在 NPM 上託管預先訓練的模型。
在 JavaScript 專案中取得 TensorFlow.js 有兩種主要方法:透過腳本標籤或從 NPM 安裝並使用 Parcel、WebPack 或 Rollup 等建置工具。
將以下程式碼加入 HTML 文件中:
< html >
< head >
<!-- Load TensorFlow.js -->
< script src =" https://cdn.jsdelivr.net/npm/@tensorflow/tfjs/dist/tf.min.js " > </ script >
<!-- Place your code in the script tag below. You can also use an external .js file -->
< script >
// Notice there is no 'import' statement. 'tf' is available on the index-page
// because of the script tag above.
// Define a model for linear regression.
const model = tf . sequential ( ) ;
model . add ( tf . layers . dense ( { units : 1 , inputShape : [ 1 ] } ) ) ;
// Prepare the model for training: Specify the loss and the optimizer.
model . compile ( { loss : 'meanSquaredError' , optimizer : 'sgd' } ) ;
// Generate some synthetic data for training.
const xs = tf . tensor2d ( [ 1 , 2 , 3 , 4 ] , [ 4 , 1 ] ) ;
const ys = tf . tensor2d ( [ 1 , 3 , 5 , 7 ] , [ 4 , 1 ] ) ;
// Train the model using the data.
model . fit ( xs , ys ) . then ( ( ) => {
// Use the model to do inference on a data point the model hasn't seen before:
// Open the browser devtools to see the output
model . predict ( tf . tensor2d ( [ 5 ] , [ 1 , 1 ] ) ) . print ( ) ;
} ) ;
</ script >
</ head >
< body >
</ body >
</ html >
在瀏覽器中開啟該 HTML 文件,程式碼應該會運行!
使用yarn或npm將TensorFlow.js加入您的專案。注意:由於我們使用 ES2017 語法(例如import
),因此此工作流程假設您使用現代瀏覽器或捆綁器/轉譯器將程式碼轉換為舊版瀏覽器可以理解的程式碼。請參閱我們的範例,以了解如何使用 Parcel 建置程式碼。但是,您可以自由使用您喜歡的任何建置工具。
import * as tf from '@tensorflow/tfjs' ;
// Define a model for linear regression.
const model = tf . sequential ( ) ;
model . add ( tf . layers . dense ( { units : 1 , inputShape : [ 1 ] } ) ) ;
// Prepare the model for training: Specify the loss and the optimizer.
model . compile ( { loss : 'meanSquaredError' , optimizer : 'sgd' } ) ;
// Generate some synthetic data for training.
const xs = tf . tensor2d ( [ 1 , 2 , 3 , 4 ] , [ 4 , 1 ] ) ;
const ys = tf . tensor2d ( [ 1 , 3 , 5 , 7 ] , [ 4 , 1 ] ) ;
// Train the model using the data.
model . fit ( xs , ys ) . then ( ( ) => {
// Use the model to do inference on a data point the model hasn't seen before:
model . predict ( tf . tensor2d ( [ 5 ] , [ 1 , 1 ] ) ) . print ( ) ;
} ) ;
有關更多詳細信息,請參閱我們的教程、範例和文件。
我們支持從以下位置移植預訓練模型:
請參考以下:
TensorFlow.js 是 TensorFlow 生態系統的一部分。欲了解更多:
tfjs
標籤。感謝 BrowserStack 提供測試支援。