1. 程式人生 > >Google黑科技,瀏覽器上的機器學習框架--Tensorflow.js

Google黑科技,瀏覽器上的機器學習框架--Tensorflow.js

Google黑科技,瀏覽器上的機器學習框架–Tensorflow.js

這裡寫圖片描述

2018年3月30日,谷歌 TenosrFlow 開發者峰會 2018 在美國加州石景山開幕,來自全球的機器學習使用者圍繞 TensorFlow 展開技術演講與演示。

今年,Tensorflow做的一件很好意思的事情,釋出了面向JavaScript開發者全新的學習框架Tensorflow.js,將機器學習搬上了瀏覽器這個平臺。

瀏覽器端的Machine Learning

峰會上Daniel Smilkov以及Nikhil Thorat展示了2個採用tensorflow.js在瀏覽器上實現的2個小遊戲。

@dsmilkov和@nsthorat在訓練模型中使用計算機視覺和一個攝像頭,來,控制PAC-MAN遊戲,而這個過程完全是在瀏覽器中進行的。

這裡寫圖片描述

使用TensorFlow.js構建的應用程式的另一個有趣的例子是一個尋寶遊戲。你可以嘗試使用你的手機去試試這個尋寶遊戲。

這裡寫圖片描述

當然官網提供的demo還不止這兩個。

這些新穎的模型作為案例在 TensorFlow.js 中都提供了實現程式碼,讀者也可以跟隨教程實現基於瀏覽器的模型
[link]https://js.tensorflow.org/

通過以上兩個遊戲我們可以看出瀏覽器端ml所具備的互動性。同時在瀏覽器中執行的ML意味著從使用者的角度來看,不需要安裝任何庫或驅動程式。只需開啟一個網頁,您的程式即可執行。

此外,它也可以使用GPU加速執行。TensorFlow.js自動支援WebGL,並在GPU可用時在幕後加速程式碼。使用者也可以通過移動裝置開啟您的網頁,在這種情況下,您的模型可以利用感測器資料,例如陀螺儀或加速度計。最後,所有資料都保留在客戶端上,使得TensorFlow.js可用於低延遲推斷以及隱私保護應用程式。

從以上內容總結出以下四點:

  • 無驅動/不需要安裝
  • 互動式ml
  • 自帶感測器
  • 資料儲存在客戶端

Tensorflow.js 的三種工作流程

  • 匯入現有的預先訓練的模型進行推理。如果您有一個以前曾經離線培訓過的現有TensorFlow或Keras模型,則可以將其轉換為TensorFlow.js格式,並將其載入到瀏覽器中進行推理。
  • 重新訓練匯入的模型:正如在上面的Pac-Man演示中,您可以使用傳輸學習來增強現有模型,使用名為“影象重新訓練”的技術,使用在瀏覽器中收集的少量資料進行離線培訓。這是快速訓練精確模型的一種方法,只使用少量資料。
  • 直接在瀏覽器中創作模型:可以使用TensorFlow.js完全在瀏覽器中使用Javascript和高階圖層API定義,訓練和執行模型。

Tensorflow 整體架構

這裡寫圖片描述

TensorFlow.js包含支援低階API(以前稱為deeplearn.js)和Eager執行。

TensorFlow.js API的概述。TensorFlow.js由WebGL提供支援,並提供用於定義模型的高階圖層API和用於線性代數的低級別API和自動分化。TensorFlow.js支援匯入TensorFlow SavedModels和Keras模型。

此外 Node.js 很快就會發布,它能為網站模型提供 GPU、TPU 等快速訓練與推斷的方法。

Tensorflow.js與deeplearning.js的關聯

這裡寫圖片描述
deeplearning.js
* 2017年8月分佈
* 通過WebGL呼叫GPU加速
* 推理和訓練完全在瀏覽器上執行

TensorFlow.js是用於機器學習的JavaScript工具生態系統,是deeplearn.js的繼任者,現在稱為TensorFlow.js Core。TensorFlow.js還包含一個Layers API,它是用於構建使用Core的機器學習模型的更高級別的庫,以及用於自動移植TensorFlow SavedModels和Keras hdf5模型的工具

TensorFlow.js API的概述。TensorFlow.js由WebGL提供支援,並提供用於定義模型的高階圖層API和用於線性代數和自動區分的低階API。TensorFlow.js支援匯入TensorFlow SavedModels和Keras模型。

Tensorflow.js 實現minst手寫字母識別

這裡為找了一個用Tensorflow.js實現mnist手寫數字預測的例子,詳細的程式碼可以訪問這裡

這裡寫圖片描述

從一個使用者的角度上看,是不是有很強的互動性,你可以非常直觀的看到你所要的結果。

微信公眾號(SZBigdata-Club):後續部落格的文件都會轉到微信公眾號中。
1、公眾號會持續給大家推送技術文件、學習視訊、技術書籍、資料集等。
2、接受大家投稿支援。
3、對於各公司hr招聘的,可以私下聯絡我,把招聘資訊發給我我會在公眾號中進行推送。
這裡寫圖片描述

技術交流群:59701880 深圳廣州hadoop好友會
這裡寫圖片描述