-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbenchmark_onnx.html
39 lines (35 loc) · 1.21 KB
/
benchmark_onnx.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<html>
<head>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/onnxjs/dist/onnx.min.js"></script>
<script>
// MobileNet v2
// const base_url = './mobilenetv2/';
// ResNet 50 v2
const base_url = './resnet50/';
async function run() {
const session = new onnx.InferenceSession({ backendHint: 'webgl' });
await session.loadModel(base_url + 'model.onnx');
console.log('model loaded');
let start = performance.now();
let inputs = [new onnx.Tensor(new Float32Array(3*224*224), 'float32', [1, 3, 224, 224])];
await session.run(inputs);
let elapsed = performance.now() - start;
console.log('Warmup took', elapsed);
let totalElapsed = 0;
const N = 20;
for (let i = 0; i < N; i++) {
start = performance.now();
inputs = [new onnx.Tensor(new Float32Array(3*224*224), 'float32', [1, 3, 224, 224])];
await session.run(inputs);
elapsed = performance.now() - start;
totalElapsed += elapsed;
console.log(`Run ${i+2} took ${elapsed}`);
}
console.log(`Average ${totalElapsed / N}`);
}
run();
</script>
</body>
</html>