三種Js深度學習框架介紹


談到機器學習,我們腦海首先蹦出的編程語言是什么?一定是python。其實除了python,JavaScript也是不錯的選擇。都說現在是大前端時代,從移動開發、服務器端,甚至桌面軟件開發(比如大名鼎鼎的VS Code),都有JavaScript的身影。  

用Javascript寫機器學習應用,當然不會從頭開始手寫機器學習算法和模型,通常會借助現有框架。我之前接觸的都是TensorFlow.js,其實除了TFjs,還有其它的深度學習框架。下面就介紹三種常用的Javascript深度學習框架。

 

TensorFlow.js

Tensorflow.js是業界的大哥大,Google出品,值得信賴。其實TensorFlow.js發布得很晚,到2017年中期才公開發布第一個beta版本,其前身是Deeplearn.js。不過TensorFlow.js是第一個在瀏覽器中提供硬件加速的開源深度學習框架,它利用了WebGL進行加速。

在瀏覽器中的機器學習,用戶可以直接在瀏覽器中提供數據,進行實時訓練學習,而不用額外安裝軟件。TensorFlow.js也無需用單獨的深度學習框架構建離線的模型,隨着瀏覽器對硬件能力的支持度越來越高(比如攝像頭、麥克風等),我們可以在瀏覽器中運行越來越豐富的機器學習應用。

 

WebDNN

WebDNN是由東京大學的機器智能實驗室開發的,雖然它沒有TensorFlow.js那么流行,但是它支持更多種類的深度學習框架:

  • TensorFlow

  • Keras

  • PyTorch

  • Chainer

  • Caffe

如果你已經有了這些深度學習框架的模型,你可以用WebDNN很容易地導入這些模型。WebDNN有一個優化器管道,它看似一個編譯器,將一個訓練模型轉換為一個WebDNN的中間表示的格式。在WebDNN優化中間表達之后,優化過的模型生成一個核操作圖

WebDNN也能通過WebGL進行硬件加速,如果你的瀏覽器支持WebAssembly和WebGPU,還可以通過這些API加速。

TensorFlow.js和WebDNN的主要不同在於WebDNN只支持任務的推斷階段,而不能用在訓練階段。因此除了WebDNN,你還要熟悉前面介紹的幾種深度學習框架之一。我們可以將WebDNN看做一個優化器,它能讓預訓練的模型在瀏覽器上運行得更快。

你可以使用pip安裝WebDNN:

$ pip install webdnn

資源搜索網站大全 https://www.renrenfan.com.cn 廣州VI設計公司https://www.houdianzi.com

Keras.js

Keras.js只支持Keras生成的模型,但因為Keras本身支持多種深度學習框架后端,所以Keras.js間接支持Keras支持的深度學習框架后端,比如Tensorflow、CNTK、MXNet等。

像TensorFlow.js一樣,Keras.js實現各種核函數。Keras.js同樣不支持模型訓練,所以你需要為Keras.js准備預訓練模型來創建應用。

Keras.js可以運行在獨立於主線程外的WebWorker,這可以避免阻塞渲染UI,對於提升良好的用戶體驗至關重要。

Keras.js提供很多使用的例子,你可以訪問:https://github.com/transcranial/keras-js.git 了解更多。

 

小結

三種Javascript深度模型框架之中,TensorFlow.js無疑是最流行的框架,無論是從功能、社區支持還是活躍度上,都碾壓其它兩個。但其它兩個也各有特點,支持的后端框架更多,支持更多的模型類型,更容易和已有的資源整合。重要的是哪種工具適合哪類問題,深度學習框架還很年輕、不成熟,希望在看完這篇文章之后,可以幫助你更好的選擇深度學習框架。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM