mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-15 20:50:42 +00:00
* initial commit for Node.js binding * add c++ code * add inference session impl * e2e working * add settings.json * add test data * adjust binding declaration * refine tensor constructor declaration * update tests * enable onnx tests * simply refine readme * refine cpp impl * refine tests * formatting * add linting * move bin folder * fix linux build * manually update test filter list * update C++ API headers: fix crash in release build * make (manually) prebuild work * add test into prepack script * specify prebuild runtime type (N-API) * build.ts: update rebuild and include regex * fix lazy load on electron.js * update dev version, git link and binary host * support session options and run options * bump dev version * update README * add 1 example * move folder * adjust path * update document for examples * rename example 01 * add example 02 * add session option: log severity level * add example 04 * resolve comments * fix typo * remove double guard in header files * add copyright banner * move BUILD outside from README * consume test filter list from onnxruntime
34 lines
1.2 KiB
JavaScript
34 lines
1.2 KiB
JavaScript
const ort = require('onnxruntime');
|
|
|
|
// 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();
|