Deprecated
W3C Launched the Web Machine Learning Working Group in April 2021, the Web Neural Network Polyfill project has been moved to https://github.com/webmachinelearning/webnn-polyfill. You can also get latest updates for the Web Neural Network API and other relevant projects in github.com/webmachinelearning.
Web Machine Learning
Web Neural Network (WebNN) API polyfill and examples
A polyfill for Web Neural Network (WebNN) API with computer vision and natural language processing examples.
The Web Neural Network (WebNN) API is a dedicated low-level API for neural network inference hardware acceleration. It is worked on in the W3C Machine Learning for the Web Community Group.
Project Build Status
MacOS | Linux | Windows |
---|---|---|
Examples
Supported Backends
- Polyfill
- WASM: TensorFlow.js WebAssembly backend builds on top of the XNNPACK library
- WebGL: TensorFlow.js GPU accelerated WebGL backend
- WebGPU: WIP
- WebNN: Web Neural Network (WebNN) API
Run example with hardware accelerated WebNN backend
If you are interested, please refer to WebNN Chromium build repo and WIKI:
- How to build WebNN Chromium on Windows, Linux, macOS, ChromeOS and Android
- How to run Chromium builds with WebNN API
Benchmarks
- Web AI Workload Use this tool to collect the performance-related metrics (inference time, etc) of various models and kernels on your local device with Wasm, WebGL, or WebNN backends. The Web AI Workload also supports to measure the OpenCV.js DNN performance with Wasm, Wasm Threads and Wasm SIMD.
- OpenCV.js Performance Test Use this tool to collect the OpenCV.js performance for image processing with Wasm, Wasm Threads and Wasm SIMD.
Building & Testing
Install
$ npm install
Start
$ npm start
# Start an HTTPS server
$ HTTPS=true npm start
Build
$ npm run build
# Production build
$ NODE_ENV=production npm run build
# WASM backend build:
$ npm run build-wasm
Test
$ npm start
Open browser and navigate to http://localhost:8080/test
Watch
$ npm run watch
License
This project is following Apache License Version 2.0.
Documents in test/wpt/resources are licensed by the W3C 3-clause BSD License.