Skip to content

huningxin/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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 75.3%
  • TypeScript 12.2%
  • Python 11.9%
  • Other 0.6%