mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-14 20:48:00 +00:00
### Description The Node JS Samples included in the repository have outdated package references that are broken, which are fixed in this PR. ### Motivation and Context The samples included in this repository should just work, but sadly do not. The reason is that they are using very outdated references for the npm modules. This fix updates the dependencies to the current onnxruntime-node, which fixes the samples. Also adds a small update to the .gitignore to exclude the node_modules directories in the samples directory, which keeps the local repo changelist cleaner.
35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
'use strict';
|
|
const ort = require('onnxruntime-node');
|
|
|
|
// use an async context to call onnxruntime functions.
|
|
async function main() {
|
|
try {
|
|
// create a new session and load the specific model.
|
|
//
|
|
// the model in this example contains a single MatMul node
|
|
// it has 2 inputs: 'a'(float32, 3x4) and 'b'(float32, 4x3)
|
|
// it has 1 output: 'c'(float32, 3x3)
|
|
const session = await ort.InferenceSession.create('./model.onnx');
|
|
|
|
// prepare inputs. a tensor need its corresponding TypedArray as data
|
|
const dataA = Float32Array.from([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]);
|
|
const dataB = Float32Array.from([10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120]);
|
|
const tensorA = new ort.Tensor('float32', dataA, [3, 4]);
|
|
const tensorB = new ort.Tensor('float32', dataB, [4, 3]);
|
|
|
|
// prepare feeds. use model input names as keys.
|
|
const feeds = { a: tensorA, b: tensorB };
|
|
|
|
// feed inputs and run
|
|
const results = await session.run(feeds);
|
|
|
|
// read from results
|
|
const dataC = results.c.data;
|
|
console.log(`data of result tensor 'c': ${dataC}`);
|
|
|
|
} catch (e) {
|
|
console.error(`failed to inference ONNX model: ${e}.`);
|
|
}
|
|
}
|
|
|
|
main();
|