TensorFlow.js tutorial(1)簡介與安裝

(未經作者同意,請勿轉載)

Tensorflow.js的優勢

TensorFlow.js是一個開源的基於硬體加速的JavaScript庫,用於訓練和部署機器學習模型。谷歌推出的第一個基於TensorFlow的前端深度學習框架是deeplearning.js(現已加入Tensorflow.js的豪華午餐內容,即TensorFlow.js Core),基於瀏覽器和Javascript的Tensorflow.js有以下的優點:

1)不用安裝驅動器和軟體,通過鏈接即可分享程序

2)網頁應用交互性更強

3)有訪問GPS,Camera,Microphone,Accelerator,Gyroscope等感測器的標準api(主要是指手機端)

4)安全性,因為數據都是保存在客戶端的

TensorFlow.js的應用方式:

1)在瀏覽器中開發ML

使用簡單直觀的API從頭構建模型,然後使用低級別的JavaScript線性代數庫或高層API進行訓練。

2)運行現有模型

使用TensorFlow.js模型轉換器在瀏覽器中運行預訓練好的TensorFlow模型。

3)重新訓練現有模型

使用連接到瀏覽器的感測器數據或其他客戶端數據重新訓練ML模型。

tensorflow.js 的安裝和使用

在您的JavaScript項目中有兩種主要的方式來獲取TensorFlow.js:通過腳本標記(script tags)或從NPM(或者yarn)安裝並使用Parcel,WebPack或Rollup等工具構建工程。

1)使用Script Tag

將下面的代碼添加到HTML文件中,在瀏覽器中打開該HTML文件,代碼應該運行!

<html> <head> <!-- Load TensorFlow.js --> <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.9.0"> </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 hasnt seen before: // Open the browser devtools to see the output model.predict(tf.tensor2d([5], [1, 1])).print(); }); </script> </head> <body> </body></html>

通過NPM(或yarn)

使用yarn或npm將TensorFlow.js添加到您的項目中。 注意:因為使用ES2017語法(如import),所以此工作流程假定您使用打包程序/轉換程序將代碼轉換為瀏覽器可以理解的內容。 在以後的教程中會介紹如何用Parcel構建工程,現在首先安裝npm或者yarn。

yarn add @tensorflow/tfjs npm install @tensorflow/tfjs

在js文件中輸入以下代碼:

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 hasnt seen before: model.predict(tf.tensor2d([5], [1, 1])).print(); });

使用yarn/npm生成

1)yarn

cd 工作目錄名yarnyarn watch

2)npm

cd 工作目錄名npm installnpm run watch

參考:

【1】TensorFlow.js

【2】tensorflow/tfjs


推薦閱讀:

TAG:deeplearning | TensorFlow |