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 |