WebNN(全稱:Web Neural Network)API定義了一個Web友好的、與硬體無關的抽象層,它利用了作業系統和底層硬體平台的機器學習功能,而無需綁定到特定於平台的功能。抽象層解決了關鍵機器學習JavaScript框架的需求,也允許熟悉ML領域的web開發人員在沒有庫幫助的情況下編寫自定義代碼。
基本介紹
- 中文名:Web神經網路
- 外文名:WebNN
- 所屬學科:計算機科學
歷史,原理,特點,套用,
歷史
WebNN於2021年6月22日第一份公開工作草案,2023年5月19日發布候選人推薦草案。
原理
WebNN的原語可以映射到不同作業系統上可用的本機機器學習API,例如Android Neural Networks API, Windows上的DirectML, macOS上的Metal Performance Shader, iOS和OpenVINO, InteloneAPI深度神經網路庫(oneDNN)。這些原生api將與編譯器和驅動程式對話,在各種機器學習硬體上運行這些原語。用戶可以在編譯構建的圖形之前為加速選擇最合適的底層本機ML後端。對於未嵌入作業系統的深度學習框架或庫,如OpenVINO和InteloneAPI deep Neural Network library (oneDNN),需要提前編譯並安裝以供使用。否則,如果用戶想要使用相應的框架來加速,WebNN將拋出錯誤。
特點
WebNN主要集中在計算量大的操作,如卷積和矩陣乘法的最佳化,因為這些操作占用了大部分的推理時間。對於WebNN不支持的其他操作,將委託給WebAssembly或WebGPU。此外,WebNN還不支持自定義操作。它們的加速對於推理性能是至關重要的。通過使用這些原語,JavaScript機器學習框架可以定義一個計算圖,該圖可以表示機器學習推理模型的部分或全部。該框架可以使用WebNN API來編譯和執行圖以用於硬體加速。WebNN圖的執行可以與在WebAssembly或WebGPU計算著色器中編寫的核心互動。通過使用WebNN進行硬體加速,並使用WebAssembly,WebGPU進行自定義操作支持,框架可以變得靈活。
套用
應用程式用例;
人員檢測;
語義分割;
骨架檢測;
人臉識別;
人臉標誌點檢測;
超解析度;
圖像字幕;
機器翻譯;
情緒分析;
視頻摘要;
檢測虛假視頻等。

