From 6bca869b832bebbc8fc6d0bf254b6dd854dff2d9 Mon Sep 17 00:00:00 2001 From: Ningxin Hu Date: Wed, 19 Aug 2020 14:17:35 +0800 Subject: [PATCH] Import LeNet example from https://github.com/intel/webml-polyfill/tree/master/examples/lenet --- .gitignore | 9 ++ LICENSE | 201 +++++++++++++++++++++++++++++++++++++++++++ lenet/README.md | 13 +++ lenet/index.html | 114 ++++++++++++++++++++++++ lenet/lenet.js | 113 ++++++++++++++++++++++++ lenet/main.js | 121 ++++++++++++++++++++++++++ lenet/package.json | 11 +++ lenet/pen.js | 48 +++++++++++ lenet/screenshot.png | Bin 0 -> 63922 bytes 9 files changed, 630 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 lenet/README.md create mode 100644 lenet/index.html create mode 100644 lenet/lenet.js create mode 100644 lenet/main.js create mode 100644 lenet/package.json create mode 100644 lenet/pen.js create mode 100644 lenet/screenshot.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..9115fedb --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +node_modules/ +**/*.tflite +**/*.onnx +**/*.bin +**/*.xml +**/*.pb +**/*.ark +.DS_Store +package-lock.json diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..261eeb9e --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lenet/README.md b/lenet/README.md new file mode 100644 index 00000000..a1ad5179 --- /dev/null +++ b/lenet/README.md @@ -0,0 +1,13 @@ +## WebNN API LeNet Example +The sample uses the LeNet classifications network as an example. + +### Setup +Install dependencies: +```sh +> npm install +``` + +Please download the [lenet.bin](https://github.com/openvinotoolkit/openvino/blob/2020/inference-engine/samples/ngraph_function_creation_sample/lenet.bin) before launch the example. + +### Screenshot +![screenshot](screenshot.png) \ No newline at end of file diff --git a/lenet/index.html b/lenet/index.html new file mode 100644 index 00000000..47f07c05 --- /dev/null +++ b/lenet/index.html @@ -0,0 +1,114 @@ + + + + + WebNN LeNet Example + + + + + +
+
+
+
+
+ +
+
+
+
Prediction Result:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
#LabelProbability
1
2
3
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/lenet/lenet.js b/lenet/lenet.js new file mode 100644 index 00000000..98f695aa --- /dev/null +++ b/lenet/lenet.js @@ -0,0 +1,113 @@ + +var nn = navigator.ml.getNeuralNetworkContext('v2'); + +function sizeOfShape(shape) { + return shape.reduce((a, b) => { return a * b; }); +} + +class Lenet { + constructor(url) { + this.url_ = url; + this.model_ = null; + this.compilation_ = null; + } + + async load() { + const response = await fetch(this.url_); + const arrayBuffer = await response.arrayBuffer(); + if (arrayBuffer.byteLength !== 1724336) { + throw new Error('Incorrect weights file'); + } + + const inputShape = [1, 1, 28, 28]; + const input = nn.input('input', {type: 'tensor-float32', dimensions: inputShape}); + + const conv1FitlerShape = [20, 1, 5, 5]; + let byteOffset = 0; + const conv1FilterData = new Float32Array(arrayBuffer, byteOffset, sizeOfShape(conv1FitlerShape)); + const conv1Filter = nn.constant({type: 'tensor-float32', dimensions: conv1FitlerShape}, + conv1FilterData); + byteOffset += sizeOfShape(conv1FitlerShape) * Float32Array.BYTES_PER_ELEMENT; + const conv1 = nn.conv2d(input, conv1Filter); + + const add1BiasShape = [1, 20, 1, 1]; + const add1BiasData = new Float32Array(arrayBuffer, byteOffset, sizeOfShape(add1BiasShape)); + const add1Bias = nn.constant({type: 'tensor-float32', dimensions: add1BiasShape}, + add1BiasData); + byteOffset += sizeOfShape(add1BiasShape) * Float32Array.BYTES_PER_ELEMENT; + const add1 = nn.add(conv1, add1Bias); + + const pool1WindowShape = [2, 2]; + const pool1Strides = [2, 2]; + const pool1 = nn.maxPool2d(add1, pool1WindowShape, [0, 0, 0, 0], pool1Strides); + + const conv2FilterShape = [50, 20, 5, 5]; + const conv2Filter = nn.constant({type: 'tensor-float32', dimensions: conv2FilterShape}, + new Float32Array(arrayBuffer, byteOffset, sizeOfShape(conv2FilterShape))); + byteOffset += sizeOfShape(conv2FilterShape) * Float32Array.BYTES_PER_ELEMENT; + const conv2 = nn.conv2d(pool1, conv2Filter); + + const add2BiasShape = [1, 50, 1, 1]; + const add2Bias = nn.constant({type: 'tensor-float32', dimensions: add2BiasShape}, + new Float32Array(arrayBuffer, byteOffset, sizeOfShape(add2BiasShape))); + byteOffset += sizeOfShape(add2BiasShape) * Float32Array.BYTES_PER_ELEMENT; + const add2 = nn.add(conv2, add2Bias); + + const pool2WindowShape = [2, 2]; + const pool2Strides = [2, 2]; + const pool2 = nn.maxPool2d(add2, pool2WindowShape, [0, 0, 0, 0], pool2Strides); + + const reshape1Shape = [1, -1]; + const reshape1 = nn.reshape(pool2, reshape1Shape); + + // skip the new shape + byteOffset += 2 * BigInt64Array.BYTES_PER_ELEMENT; + + const matmul1Shape = [500, 800]; + const matmul1Weights = nn.constant({type: 'tensor-float32', dimensions: matmul1Shape}, + new Float32Array(arrayBuffer, byteOffset, sizeOfShape(matmul1Shape))); + byteOffset += sizeOfShape(matmul1Shape) * Float32Array.BYTES_PER_ELEMENT; + const matmul1WeightsTransposed = nn.transpose(matmul1Weights); + const matmul1 = nn.matmul(reshape1, matmul1WeightsTransposed); + + const add3BiasShape = [1, 500]; + const add3Bias = nn.constant({type: 'tensor-float32', dimensions: add3BiasShape}, + new Float32Array(arrayBuffer, byteOffset, sizeOfShape(add3BiasShape))); + byteOffset += sizeOfShape(add3BiasShape) * Float32Array.BYTES_PER_ELEMENT; + const add3 = nn.add(matmul1, add3Bias); + + const relu = nn.relu(add3); + + const reshape2Shape = [1, -1]; + const reshape2 = nn.reshape(relu, reshape2Shape); + + const matmul2Shape = [10, 500]; + const matmul2Weights = nn.constant({type: 'tensor-float32', dimensions: matmul2Shape}, + new Float32Array(arrayBuffer, byteOffset, sizeOfShape(matmul2Shape))); + byteOffset += sizeOfShape(matmul2Shape) * Float32Array.BYTES_PER_ELEMENT; + const matmul2WeightsTransposed = nn.transpose(matmul2Weights); + const matmul2 = nn.matmul(reshape2, matmul2WeightsTransposed); + + const add4BiasShape = [1, 10]; + const add4Bias = nn.constant({type: 'tensor-float32', dimensions: add4BiasShape}, + new Float32Array(arrayBuffer, byteOffset, sizeOfShape(add4BiasShape))); + const add4 = nn.add(matmul2, add4Bias); + + const softmax = nn.softmax(add4) + + this.model_ = await nn.createModel([{name: 'output', operand: softmax}]); + } + + async compile(options) { + this.compilation_ = await this.model_.createCompilation(options); + } + + async predict(inputBuffer) { + const outputBuffer = new Float32Array(10); + const execution = await this.compilation_.createExecution(); + execution.setInput('input', inputBuffer); + execution.setOutput('output', outputBuffer); + await execution.startCompute(); + return Array.from(outputBuffer); + } +} diff --git a/lenet/main.js b/lenet/main.js new file mode 100644 index 00000000..ad1e7a19 --- /dev/null +++ b/lenet/main.js @@ -0,0 +1,121 @@ +const predictButton = document.getElementById('predict'); +const nextButton = document.getElementById('next'); +const clearButton = document.getElementById('clear'); +const visualCanvas = document.getElementById('visual_canvas'); +const visualContext = visualCanvas.getContext('2d'); +const digitCanvas = document.createElement('canvas'); +digitCanvas.setAttribute('height', 28); +digitCanvas.setAttribute('width', 28); +digitCanvas.style.backgroundColor = 'black'; +const digitContext = digitCanvas.getContext('2d'); + +function drawNextDigitFromMnist() { + const n = Math.floor(Math.random() * 10); + const digit = mnist[n].get(); + mnist.draw(digit, digitContext); + visualContext.drawImage(digitCanvas, 0, 0, visualCanvas.width, visualCanvas.height); +} + +function getInputFromCanvas() { + digitContext.clearRect(0, 0, digitCanvas.width, digitCanvas.height); + digitContext.drawImage(visualCanvas, 0, 0, digitCanvas.width, digitCanvas.height); + const imageData = digitContext.getImageData(0, 0, digitCanvas.width, digitCanvas.height); + const input = new Float32Array(digitCanvas.width * digitCanvas.height); + for (var i = 0; i < input.length; i++) { + input[i] = imageData.data[i * 4]; + } + return input; +} + +function clearResult() { + for (let i = 0; i < 3; ++i) { + let labelElement = document.getElementById(`label${i}`); + let probElement = document.getElementById(`prob${i}`); + labelElement.innerHTML = ''; + probElement.innerHTML = ''; + } +} + +async function main() { + drawNextDigitFromMnist(); + let pen = new Pen(visualCanvas); + const lenet = new Lenet('lenet.bin'); + try { + let start = performance.now(); + await lenet.load(); + console.log(`loading elapsed time: ${(performance.now() - start).toFixed(2)} ms`); + + start = performance.now(); + await lenet.compile(); + console.log(`compilation elapsed time: ${(performance.now() - start).toFixed(2)} ms`); + + predictButton.removeAttribute('disabled'); + } catch (error) { + console.log(error); + addWarning(error.message); + } + predictButton.addEventListener('click', async function (e) { + try { + const input = getInputFromCanvas(); + let start = performance.now(); + const result = await lenet.predict(input); + console.log(`execution elapsed time: ${(performance.now() - start).toFixed(2)} ms`); + console.log(`execution result: ${result}`); + const classes = topK(result); + classes.forEach((c, i) => { + console.log(`\tlabel: ${c.label}, probability: ${c.prob}%`); + let labelElement = document.getElementById(`label${i}`); + let probElement = document.getElementById(`prob${i}`); + labelElement.innerHTML = `${c.label}`; + probElement.innerHTML = `${c.prob}%`; + }); + } catch (error) { + console.log(error); + addWarning(error.message); + } + }); + nextButton.addEventListener('click', () => { + drawNextDigitFromMnist(); + clearResult(); + }); + + clearButton.addEventListener('click', () => { + pen.clear(); + clearResult(); + }) +} + +function topK(probs, k = 3) { + const sorted = probs.map((prob, index) => [prob, index]).sort((a, b) => { + if (a[0] === b[0]) { + return 0; + } + return a[0] < b[0] ? -1 : 1; + }); + sorted.reverse(); + + const classes = []; + for (let i = 0; i < k; ++i) { + let c = { + label: sorted[i][1], + prob: (sorted[i][0] * 100).toFixed(2) + } + classes.push(c); + } + + return classes; +} + +function addWarning(msg) { + let div = document.createElement('div'); + div.setAttribute('class', 'alert alert-warning alert-dismissible fade show'); + div.setAttribute('role', 'alert'); + div.innerHTML = msg; + let container = document.getElementById('container'); + container.insertBefore(div, container.childNodes[0]); +} + +function removeWarning() { + $('.alert').alert('close') +} + diff --git a/lenet/package.json b/lenet/package.json new file mode 100644 index 00000000..17d2f29e --- /dev/null +++ b/lenet/package.json @@ -0,0 +1,11 @@ +{ + "name": "webnn-lenet-example", + "version": "0.0.1", + "description": "The LeNet-based handwritten digits classification example", + "main": "main.js", + "author": "ningxin.hu@intel.com", + "license": "Apache-2.0", + "dependencies": { + "mnist": "^1.1.0" + } +} diff --git a/lenet/pen.js b/lenet/pen.js new file mode 100644 index 00000000..d5848763 --- /dev/null +++ b/lenet/pen.js @@ -0,0 +1,48 @@ +class Pen { + constructor(cavans) { + this.canvas = cavans; + this.canvas.style.backgroundColor = 'black'; + this.canvas.style.cursor = 'crosshair'; + this.context = cavans.getContext('2d'); + this.down = false; + this.start = {}; + const self = this; + this.canvas.addEventListener('mousedown', e => { + self.down = true; + self.start = self.getPosition(e); + }); + this.canvas.addEventListener('mouseup', e => { + self.down = false; + }); + this.canvas.addEventListener('mousemove', e => { + if (self.down) { + const end = self.getPosition(e); + self.draw(self.start, end); + self.start = end; + } + }) + } + + getPosition(e) { + const rect = this.canvas.getBoundingClientRect(); + const x = e.clientX- rect.left;; + const y = e.clientY- rect.top; + return {x: x, y: y}; + } + + draw(start, end) { + this.context.strokeStyle = 'white'; + this.context.lineJoin = 'round'; + this.context.lineWidth = 20; + + this.context.beginPath(); + this.context.moveTo(start.x, start.y); + this.context.lineTo(end.x, end.y); + this.context.closePath(); + this.context.stroke(); + } + + clear() { + this.context.clearRect(0, 0, this.canvas.width, this.canvas.height); + } +} \ No newline at end of file diff --git a/lenet/screenshot.png b/lenet/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..9a0374dc47407f9b2090c2782c557e7645c14557 GIT binary patch literal 63922 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

4ALHts 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