13:58:26 RRSAgent has joined #webmachinelearning 13:58:26 logging to https://www.w3.org/2020/06/25-webmachinelearning-irc 13:58:35 Zakim has joined #webmachinelearning 13:58:36 RRSAgent, make logs public 13:58:51 Meeting: WebML CG Teleconference – 25 June 2020 13:58:56 ningxin_hu has joined #webmachinelearning 13:59:01 Chair: Anssi 13:59:06 Agenda: https://github.com/webmachinelearning/meetings/blob/master/telcons/2020-06-25-agenda.md 13:59:19 Scribe: Anssi 13:59:46 scribeNick: anssik 13:59:55 Present+ Anssi_Kostiainen 14:00:03 Present+ Ningxin_Hu 14:00:09 Present+ Chai_Chaoweeraprasit 14:00:20 Present+ Wonsuk_Lee 14:03:03 Present+ Ping_Yu 14:03:09 Present+ Rafael_Cintron 14:03:23 RRSAgent, draft minutes v2 14:03:23 I have made the request to generate https://www.w3.org/2020/06/25-webmachinelearning-minutes.html anssik 14:03:32 ping_yu has joined #webmachinelearning 14:03:47 RafaelCintron has joined #webmachinelearning 14:04:05 TOPIC: Set inputs and outputs by string key 14:04:15 -> https://github.com/webmachinelearning/webnn/pull/69 Set inputs and outputs by string key (PR #69) 14:04:33 anssik: PR reviewed and merged. Nice API ergonomics improvement 14:04:40 ... fixes issue to allow a graph to declare the keys for its inputs and outputs 14:04:44 ... string-based keys are developer friendly, easier to memorize, also aling with the Model Loader API 14:04:49 ... comments? 14:04:50 Chai has joined #webmachinelearning 14:05:40 ningxin_hu: thanks for the review all, this issue was raised by Chai and Rafael 14:05:52 ... this PR fixes the issue #67 14:06:31 ... two issues in the previous API: 1) we use integer-based index for inputs and outputs, in our latest builder API indexing of inputs is very unclear, implicitly set 14:07:02 ... 2) Rafael raised a point we need to align with the Model Loader API that uses string-based keys to set the model exec inputs and outputs 14:07:29 ... as mentioned last time, we created this issue and moved the conversation to GH and based on that I created the PR and tried to fix both the issues at once 14:07:35 Jonathan has joined #webmachinelearning 14:07:57 ... if you look at the Model Loader API the current shape is not exactly the same, it uses some dictionary directly in the predict API 14:08:19 ... maybe Model Loader API needs some changes a bit to align with the WebNN API convention 14:09:22 anssik: in general support the plan to align the two APIs in this respect 14:09:33 Present+ Paul_McDaniel 14:09:37 paul-mcdaniel-msft has joined #webmachinelearning 14:10:01 Present+ Jonathan_Bingham 14:11:26 [Ningxin recaps the new feature introduced in PR #69 to Jonathan] 14:12:19 Jonathan: agree good idea to unify the API for that feature 14:12:44 Rafael: good idea to allow inputs and outputs specified as strings 14:13:17 Ping: what are the string values for those names? 14:13:53 ningxin_hu: for WebNN API, it's developer-friendly name to identify inputs and outputs 14:14:26 ... for Model Loader API, ONNX uses strings for their inputs and outputs 14:14:55 https://webmachinelearning.github.io/webnn/#examples 14:16:09 ningxin_hu: in my current polyfill, these strings are translated into internal id, e.g. integer-based keys 14:16:27 Ping: on the model side, that needs to be maintained inside the model architecture? 14:17:24 ningxin_hu: looking at the example, the developer set descriptors, that is mapped internally in the browser 14:21:19 TOPIC: Add softmax and relevant element-wise binary and unary ops 14:21:23 -> https://github.com/webmachinelearning/webnn/pull/68 Add softmax and relevant element-wise binary and unary ops (PR #68) 14:21:30 anssik: Softmax op required by the first-wave models 14:21:43 ... this big op decomposes into smaller ops reduceSum, div and exp 14:21:52 ... In addition to those smaller ops, this PR added alltogether the following: 14:21:58 ... element-wise binary operations: sub, mul, div, max, min 14:22:05 ... and element-wise unary operations: abs, ceil, cos, exp, floor, log, neg, sin, sqrt, tan, tanh 14:22:16 anssik: these binary and unary ops are reportedly supported by both ONNX and TensorFlow 14:22:31 ... it seems there's one comment from Chai that Ningxin address today 14:22:42 ... otherwise we seem to be good? 14:23:07 ningxin_hu: that was an accurate description of the status 14:23:33 ... the last comment from Chai was a great one, by convention we added sample how to decompose this into primitives 14:23:59 ... within the implementation I followed a practice that avoid numerical instability issue when dividing with a very big number 14:24:10 ...Chai proposed we document this trick and reference 14:24:26 ... fixed that with a new commit in the PR 14:24:51 Chai: LGTM 14:24:55 ... we also do t 14:25:07 s/do t/do use this trick in DirectML 14:25:16 ... adding a reference makes sense 14:25:28 ... comments? 14:25:47 s/... comments/anssik: comments/ 14:25:58 TOPIC: Noise suppression 14:26:05 -> https://github.com/webmachinelearning/webnn/issues/66 Evaluate noise suppression models for required ops (issue #66) 14:26:12 anssik: wanted to do status check on the next steps 14:26:28 ... since last meeting, RNNoise author Jean-Marc Valin (@jmvalin on GH) chimed in on the issue offering a helping hand 14:26:41 ... Chai proposed NSNet model as another evaluation target besides RNNoise 14:26:47 -> https://arxiv.org/pdf/2001.10601.pdf NSNet paper 14:27:16 ... Chai also noted both RNNoise and NSNet are hybrid DSP/ML based solutions, wondering how the DSP part integration Web Audio will work 14:29:25 Chai: looking at both the papers, there shouldn't be any problems with functionality re FFT windowing 14:31:34 ... we need someone who understands Web Audio implementation in browsers to gauge feasibility, asked Jean-Mar about this on the issue 14:32:07 TOPIC: WebNN API Explainer 14:32:13 -> https://github.com/webmachinelearning/webnn/blob/master/explainer.md WebNN explainer 14:33:20 anssik: we had a chat with WebNN editors about position of explainer and the spec. In short explainer is an informative reference that helps folks get up to speed with the API fast and facilitates reviews, for example W3C TAG asks for an explainer at review-time 14:34:45 ... our spec is currently light on introduction part so we may move informative text between the spec and explainer freely. 14:35:34 ... examples are another important informative part of the spec and/or explainer, we have an issue for that 14:35:39 -> https://github.com/webmachinelearning/webnn/issues/70 Add a more advanced example (issue #70) 14:38:09 Chai: is it the MNIST dataset? 14:38:28 ningxin_hu: Looked at LeNet-5 topology, also looked at ONNX.js example 14:38:37 ... it uses a similar architecture 14:39:38 ningxin_hu: for the WebNN example purposes, we need to include the code to construct the graph 14:39:54 ... if I work on this example, I'll rewrite it from the scratch 14:41:34 ... we could discuss the idea of including the polyfill as part of the project 14:42:06 Ping: where are you planning to train the model? 14:42:12 ningxin_hu: for the xample, I may us 14:42:39 s/us/use pretrained network from MNIST dataset 14:42:53 s/xample/example 14:44:24 [possibly related to the discussion: https://github.com/webmachinelearning/webnn/issues/74] 14:44:59 ningxin_hu: idea is to be format independent, weight can be in any format 14:45:40 ... or can load weights from a separate file, very flexible, not part of the example to explain that, the scope is to show how to use WebNN graph builder to utilize LeNet architecture 14:47:03 Ping: having the weights directly in the code would make for a clearer example 14:48:06 Chai: normally weights are packaged, but they layout needs to be supported by the model, for the purpose of the example, best to minimize deserialization and focus on model construction part of the sample, with weights inline it would be harder to understand the core functionality 14:49:00 ningxin_hu: need to agree this is a meaninful problem to solve as an example 14:49:42 anssik: proposal is to add an example of convolution neural network (CNN) for handwritten digit classification 14:49:50 note: that mnist model we are talking about has about 12 nodes. should be a nice and simple model to use as our first set . very small graph. 14:50:00 https://github.com/onnx/models/blob/master/vision/classification/mnist/model/mnist-8.onnx 14:50:35 Paul: seems like a great model to start with 14:51:18 +1 14:51:28 +1 14:51:32 anssik: any concerns to add the proposed example? 14:51:59 Ping: this is not a very typical use case 14:52:08 ... but a good demonstration of the API 14:53:06 ... a simpler would be better, but agree we can start with this 14:53:53 PROPOSED RESOLUTION: Add an example of convolution neural network (CNN) for handwritten digit classification 14:54:18 anssik: any concerns with this proposed resolution? 14:54:21 [none] 14:54:22 RESOLUTION: Add an example of convolution neural network (CNN) for handwritten digit classification 14:54:40 TOPIC: AOB 14:54:46 anssik: our specs how have a shared visual identity with a logo :) 14:56:03 anssik: We may cancel some meeting in July/Aug to account for the vacation period, watch the mailing list for meeting info. 14:56:49 TOPIC: Adjourn 14:57:04 RRSAgent, draft minutes v2 14:57:04 I have made the request to generate https://www.w3.org/2020/06/25-webmachinelearning-minutes.html anssik 15:54:20 zkis has joined #webmachinelearning 16:29:08 Zakim has left #webmachinelearning