大家好,我是章北海
我一直探索更好玩地介紹機器學習,降低學習門檻,用其開發有趣,有價值的應用。之前介紹過很多機器學習應用方面的玩法,比如:gRPC部署訓練好的機器學習模型,使用FastAPI構建機器學習API,用streamlit快速生成機器學習web應用 ,在Excel裡玩機器學習。←點選直達
最近我在玩 TensorFlow.js ,計劃用它整個活兒。本文就是 TensorFlow.js 的極簡入門。
TensorFlow.js
TensorFlow.js 是一個開源硬體加速 JavaScript 庫,用於訓練和部署機器學習模型。它可以讓我們直接在瀏覽器
中訓練和部署機器學習模型的 JavaScript 庫,可以非常靈活地進行 AI 應用的開發:
-
不需要安裝軟體或驅動(開啟瀏覽器即可使用);
-
可以通過瀏覽器進行更加方便的人機互動;
-
可以通過手機瀏覽器,呼叫手機硬體的各種感測器(如:GPS、攝像頭等);
-
使用者的資料可以無需上傳到伺服器,在本地即可完成所需操作。
TensorFlow.js 主要是由 WebGL 提供能力支援,並提供了一個用於定義模型的高層 API ,以及用於線性代數和自動微分的低階 API 。TensorFlow.js 支援匯入 TensorFlow SavedModels 和 Keras 模型。
TensorFlow.js 環境配置
在瀏覽器中載入 TensorFlow.js ,最方便的辦法是在 HTML 中直接引用 TensorFlow.js 釋出的 NPM 包中已經打包安裝好的 JavaScript 程式碼。
<html>
<head>
<script src="http://unpkg.com/@tensorflow/tfjs/dist/tf.min.js"></script>
也可以在Node.js中使用TensorFlow.js,配置也不算太複雜:
安裝 Node.js npm yarn
Node.js是基於Chrome的JavaScript構建的跨平臺JavaScript執行時環境,npm是Node.js的預設程式包管理器,也是世界上最大的軟體登錄檔。
sudo apt update
sudo apt install nodejs npm
如果已經安裝過node.js,儘量升級到最新版本
# 更新npm :
npm install -g npm
# 更新node版本:
先清除npm快取:
npm cache clean -f
# 然後安裝n模組:
npm install -g n
# 升級node.js到最新穩定版:
n stable
TensorFlow.js的example執行時會用到 Yarn 這裡一併安裝。(不裝也行,npm撐得住)
Yarn就是一個類似於 npm 的包管理工具,主要的優勢在於:速度快、離線模式、版本控制。
坑已經幫大家踩過了,請必按以下方式安裝:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn
yarn
建立 TensorFlow.js 專案目錄:
$ mkdir tfjs
$ cd tfjs
安裝 TensorFlow.js:
# 初始化專案管理檔案 package.json
$ npm init -y
# 安裝 tfjs 庫,純 JavaScript 版本
$ npm install @tensorflow/tfjs
# 安裝 tfjs-node 庫,C Binding 版本
$ npm install @tensorflow/tfjs-node
# 安裝 tfjs-node-gpu 庫,支援 CUDA GPU 加速
$ npm install @tensorflow/tfjs-node-gpu
確認 Node.js 和 TensorFlow.js 工作正常:
$ node
> require('@tensorflow/tfjs').version
{
'tfjs-core': '1.3.1',
'tfjs-data': '1.3.1',
'tfjs-layers': '1.3.1',
'tfjs-converter': '1.3.1',
tfjs: '1.3.1'
}
>
如果你看到了上面的 tfjs-core, tfjs-data, tfjs-layers 和 tfjs-converter 的輸出資訊,那麼就說明環境配置沒有問題了。
然後,在 JavaScript 程式中,通過以下指令,即可引入 TensorFlow.js:
import * as tf from '@tensorflow/tfjs'
console.log(tf.version.tfjs)
// Output: 1.3.1
玩法及Eamples
TensorFlow.js 玩法有一下幾種:
- 在瀏覽器上執行官方 TensorFlow.js 模型:
https://www.tensorflow.org/js/models/
- 轉換 Python 模型:
https://www.tensorflow.org/js/tutorials#convert_pretained_models_to_tensorflowjs
- 使用遷移學習來用你自己的資料自定義模型
https://www.tensorflow.org/js/tutorials/transfer/what_is_transfer_learning
- 直接在 JavaScript 中構建和訓練模型
https://www.tensorflow.org/js/tutorials
最好的學習資源是TensorFlow.js官方案例:
可以直接點選連結直達感受一下TensorFlow.js的魅力
也可以clone整個專案,cd到示例資料夾:
#如果你在用yarn:
cd iris
yarn
yarn watch
#如果你在用npm:
cd iris
npm install
npm run watch