東京大學MIL提出web瀏覽器上運行最快的DNN框架
近日,東京大學機器智能實驗室(MIL)提出了web瀏覽器上運行最快的DNN框架。
在Web瀏覽器上運行經過訓練的DNN模型
現如今,深度神經網路(DNN)在許多應用中得到越來越多的關注。然而,它需要大量的計算資源,而且設置基於執行環境的硬體加速,如GPGPU,也是一項浩大的工程。因此,為終端用戶提供DNN應用是非常困難的。而WebDNN通過使用Web瀏覽器作為無安裝的DNN執行框架可以解決這個問題。該框架優化了經過訓練的DNN模型,從而壓縮模型數據和加快執行速度,並且它使用新穎的JavaScript API(諸如WebAssembly和WebGPU)來執行,以實現零開銷(zero-overhead)執行。而實證評估也顯示,這種方法是可行的,其實現了超過200倍的加速。
特定推理階段優化
為了實現更快的執行這一目標,優化DNN模型的計算圖就顯得非常重要了。DNN的執行由訓練階段和推理階段兩個階段組成。訓練階段使用反向傳播技術更新參數。推理階段對實際任務進行預測(僅僅是正向傳播)。如果框架僅關注推理階段,那它就可以更積極地優化計算圖。
WebDNN僅關注終端用戶設備上推理階段的執行,並支持積極的優化。這種優化渠道可以應用於使用各種DNN框架進行訓練的模型,而不需要編輯訓練代碼。
下一代JavaScript API
JavaScript是由解釋器執行的。 因此,它需要計算開銷,除此之外,它還不能完全利用CPU的容量。在GPU中也是如此。現代Web瀏覽器是支持WebGL的,WebGL是一個使用GPU的JavaScript API。但是,該API專為圖形處理而設計的,並不適用於通用計算。此外,使用WebGL進行通用計算會產生間接成本。
而WebDNN使用下一代JavaScript API,用於GPU執行的WebGPU和用於CPU執行的WebAssembly。所有這些API都有助於顯示GPU和CPU的全部性能。
瀏覽器兼容性
WebDNN支持3個執行後端實現:WebGPU,WebAssembly和Fallback純JavaScript實現。通過使用這3個後端實現,WebDNN可以適用於所有主要的瀏覽器。
WebGPU後端
通過WebGPU API在GPU上進行計算。這個後端是3個後端中最快的,但目前WebGPU API僅支持於Safari Technology Preview中。
WebAssembly後端
通過WebAssembly API在CPU上進行計算。這個後端要比Keras.js的GPU模式快得多。通過與asm.js一起使用,這個後端可以適用於大多數現代瀏覽器。
Fallback後端
通過ECMAScript3在CPU進行計算。這個後端只是為了向後兼容,所以運行速度並不是那麼快。
瀏覽器兼容性表
示例:在Safari技術預覽中,默認情況下禁用WebGPUAPI。 要啟用API,請參閱菜單欄中的「Develop」>「ExperimentalFeatures」>「WebGPU」。
基準測試
我們測量了VGG16和ResNet50的執行時間。下圖顯示了與Keras.js進行對比的結果。每個圖像的計算時間以垂直軸顯示為對數刻度。所有的測試都是2015年初在Mac Book Pro運行的,其配置為:英特爾內核 i5 2.7 GHz CPU、16 GB內存、Intel Iris Graphics 6100 GPU、網路瀏覽器是SafariTechnology Preview 30。
神經風格遷移
這個示例運行神經風格遷移模型。神經風格遷移模型給出2個輸入圖像,一個是內容圖像,另一個是風格圖像。然後,該模型基於風格圖像的風格和內容圖像中的內容生成圖像。
我們使用的是A(https://github.com/yusuketomoto/chainer-fast-neuralstyle)中提供的chainer(https://github.com/pfnet/chainer)實現和B(https://github.com/gafr/chainer-fast-neuralstyle-models)中提供的預訓練模型。預訓練模型由GraphTranspiler轉換成圖形描述符,然後由DescriptorRunner執行。所有計算都是通過Web瀏覽器完成的,而不是由伺服器完成的。
ResNet50圖像分類
在這個例子中,你可以運行經ImageNet訓練後的ResNet50分類模型。這裡(https://github.com/KaimingHe/deep-residual-networks)提供了原始的預訓練模型。同樣,所有計算都是通過Web瀏覽器完成的,而不是由伺服器完成。
了解更多信息,請點擊https://mil-tokyo.github.io/webdnn/docs/
來源:MIL WebDNN
※OpenAI:當AlphaGo應用於機器人領域是否戰無不勝?
※照片著色還是個難題?基於貝葉斯優化的順序線搜索技術可輕鬆搞定
※什麼是激活函數?有哪些類型?哪個更好用?別急,你要的都在這!
※兒童節 那些時間穿梭機帶你去到童年的某一天
※AI和Chatbots的這6種應用正在改變教育行業
TAG:機器人圈 |
※微軟 Azure推出支持運行AI、HPC工作負載的NVIDIA GPU
※首款運行在安卓手機上的SWITCH模擬器MONONX
※ARM改進CPU和GPU:新晶元運行Windows更快
※Google推出AI晶元Edge TPU,可在邊緣運行TensorFlow Lite機器學習模型
※NASA公布OSIRIS-REx探測器圍繞Bennu運行拍到的新短片
※TEAM-XECUTER推出運行盜版遊戲的SWITCH配件
※重大突破!Switch模擬器「RyujiNX」已經可以運行遊戲
※IHS Markit:蘋果或推出可摺疊iPad,運行iPad OS
※首個在Loom Network上運行的DApp鏈
※ARM改進CPU和GPU:Windows運行更快 能耗更低
※在 Linux 中怎麼運行 MS-DOS 遊戲和程序
※Debian riscv64版本進展迅速,九成軟體包可運行在RISC-V硬體上
※外媒演示華為Mate X摺疊屏手機運行《PUBG Mobile》
※ARM改進CPU和GPU:新晶元運行Windows更快 能耗更低
※iPhone X和三星Note7官翻版運行速度大比拼
※在Kubernetes上運行高可用的WordPress和MySQL
※Lumia手機運行Windows RT達到新的里程碑
※Ooui:在瀏覽器中運行.NET應用
※混合雲利器:VMware 上可運行 AWS RDS 資料庫
※「圖」採用Nokia N9造型 運行KaiOS的諾基亞新機即將上線