JSPM

@jax-js/onnx

0.1.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 157
  • Score
    100M100P100Q72563F
  • License MIT

Load ONNX models and run inference natively with jax-js.

Package Exports

  • @jax-js/onnx
  • @jax-js/onnx/dist/index.d.ts

Readme

@jax-js/onnx

ONNX model loader for jax-js.

Usage

Fetch a model from external path and load it.

import { ONNXModel } from "@jax-js/onnx";
import { numpy as np } from "@jax-js/jax";

const modelBytes = await fetch("./model.onnx").then((r) => r.bytes());
const model = new ONNXModel(modelBytes);

const input = np.ones([1, 3, 224, 224]);
const { output } = model.run({ input });

Loaded models are ordinary functions and can be differentiated through. Use JIT when possible for best performance.

import { grad, jit } from "@jax-js/jax";

const run = jit(model.run);
const runGrad = grad((input: np.Array) => {
  const { output } = run({ input });
  return computeLoss(output).mean();
});

const dx = runGrad(input);

After you're done, you can free the model weights.

model.dispose();