Skip to content

dibenedetto/webnn-polyfill

 
 

Repository files navigation

build and test deploy

WebNN Polyfill

A JavaScript implementation of the Web Neural Network API.

Backends

The implementation of this webnn-polyfill is based on TensorFlow.js that supports following 3 backends.

If not set, tests under the webnn-polyfill use CPU as default backend, as which has higher numerical precision than other backends. Tests may fail under WASM backend as some ops have not been implemented/supported in WASM backend.

  • For node test, we only support CPU backend.
  • For browser test, you can set backend by passing a URL parameter: backend, it accepts cpu, webgl and wasm. e.g. ?backend=webgl.

If not set, the built webnn-polyfill.js uses WebGL as default backend, you can set backend by referring to following code snippet:

    const backend = 'cpu';
    const tf = navigator.ml.createContext().tf;
    await tf.setBackend(backend);
    await tf.ready();

Build and Test

Setup

> git clone --recurse-submodules https://github.com/webmachinelearning/webnn-polyfill
> cd webnn-polyfill & npm install

Build

Development build

> npm run build

Production build

> npm run build-production

Test

Run tests in node.js.

> npm test

Run tests in web browser.

> npm start

Open the web browser and navigate to http://localhost:8080/test

Run only CTS tests in node.js.

> npm run test-cts

Run only CTS tests in web browser.

> npm start

Open the web browser and navigate to http://localhost:8080/test/cts.html

Other scripts

Build docs

> npm run build-docs

Lint

> npm run lint

Format

> npm run format

Start dev server

> npm run dev

Watch files

> npm run watch

License

This project is following Apache License Version 2.0.

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 79.4%
  • Python 10.3%
  • TypeScript 9.6%
  • Other 0.7%