microsoft / onnxjs

ONNX.js: run ONNX models using JavaScript

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

attribute.ts:122 Uncaught (in promise) Error: graph attribute is not supported yet

dewball345 opened this issue · comments

Hello There,

I recently did transfer-learning on efficientdet and I wanted to convert it into javascript using onnx.js. It worked wonderfully in python, but it failed to work in javascript.

I got the error, attribute.ts:122 Uncaught (in promise) Error: graph attribute is not supported yet, and I'm really not sure what that means and how to fix it.

This was my process:

HERE is the notebook I used to train the model and export both the saved model and tensorflowjs.

I then used the saved model and converted it into onnx format by using THIS tutorial. My model worked in python.

After this I ran my model in javascript. My load_model function was:

async function runExample() {
    // Create an ONNX inference session with WebGL backend.
    const session = new onnx.InferenceSession({ backendHint: "webgl" });

    // Load an ONNX model. This model is Resnet50 that takes a 1*3*224*224 image and classifies it.
    await session.loadModel("./model.onnx");

}

When i used their default efficientDet(which used d2), I got TypeError: cannot resolve operator 'Cast' with opsets: ai.onnx v12,
and when I used my transfer-learned efficientDet(which used d0), I got Uncaught (in promise) Error: graph attribute is not supported yet

Why is this happening?

Thanks

Any update on this?

This looks like some operators are not supported by ONNX.js WebGL backend. The first error indicates that 'Cast' operator is not implemented, and the second error indicates that one of the "subgraph" operators ( If, Loop, Scan ) is used, which is not supported yet.

we are working on migrating ONNX.js to ONNX Runtime Web which offers enhanced user experience and improved performance. Please visit ONNX Runtime Web to get more details. Please try 'wasm' backend for capabilities of all operators.