14:02:29 RRSAgent has joined #webmachinelearning 14:02:29 logging to https://www.w3.org/2019/06/27-webmachinelearning-irc 14:02:30 Zakim has joined #webmachinelearning 14:02:33 RRSAgent, make logs public 14:02:45 Meeting: WebML CG Teleconference – 27 June 2019 14:02:47 Chair: Anssi 14:02:50 Jonathan_ has joined #webmachinelearning 14:02:55 Scribe: Anssi 14:03:25 Agenda: https://github.com/webmachinelearning/meetings/blob/master/telcons/2019-06-27-agenda.md 14:03:32 Present+ Anssi_Kostiainen 14:03:41 Present+ Ningxin_Hu 14:03:47 Present+ Ganesan_Ramalingam 14:03:49 Present+ Greg_Whitworth 14:04:02 Present+ Jonathan_Bingham 14:04:11 Present+ Kai_Ninomiya 14:04:23 Present+ Ningxin_Hu 14:05:03 TOPIC: Graph-building syntax simpler for web developers - review proposed API changes 14:05:37 https://github.com/webmachinelearning/webnn/issues/16#issuecomment-502921949 14:06:39 ningxin_hu: thanks Rama for comments and suggestions for improvements, based on Rama's key points 14:07:20 Rafael has joined #webmachinelearning 14:07:22 ... two options: 1) proposal as in GH, 2) discussion with Rama 14:07:32 Present+ Rafael_Cintron 14:08:16 ... Improvement areas: constants for operand type, no support of unknown dimension. 14:09:15 ... Proposals: 1) rename OperandOptions with OperandDescriptor that actually describes a operand. 2) replace operand type constants with enum OperandType. 3) allow to use negative integers in the dimension list for an unknown dimension 14:10:33 [Ningxin walks us through the details of the proposal documented in https://github.com/webmachinelearning/webnn/issues/16#issuecomment-502921949] 14:10:42 RRSAgent, draft minutes v2 14:10:42 I have made the request to generate https://www.w3.org/2019/06/27-webmachinelearning-minutes.html anssik 14:11:09 kainino has joined #webmachinelearning 14:11:24 scribeNick: anssik 14:15:02 dsmilkov has joined #webmachinelearning 14:15:24 Present+ Daniel_Smilkov 14:16:38 ningxin_hu: addOperand improvement areas: 14:16:50 ... addOperand requires user code to maintain the operand index by 14:16:54 ... an integer by itself. 14:16:58 ... addOperand has multiple usages which would confuse developer. 14:17:23 ... Proposals: 1. introduce Operand interface and use Operand object as return value. 14:17:29 2. replace addOperand with addInput and addConstant. 14:17:35 3. introduce Operand addInput(OperandDescriptor desc) for graph's inputs. 14:17:41 4. introduce Operand addConstant(OperandDescriptor desc, ArrayBufferView data) for constants. 14:17:49 5. remove the requirement of specifying op's output operand (see addOperation proposal). 14:17:55 6. replace usage of operand for op's attributes by dictionaries (e.g. ConvAttributes). 14:17:58 7. rename identifyInputsAndOutputs with identifyOutputs as inputs could be identified by addInput. 14:18:15 ningxin_hu: addOperation improvement areas: 14:18:26 ... 1. addOperation requires to specify the shape of outputs that can be inferred. 14:18:38 ... 2. addOperation requires to specify operation type by constant. 14:18:58 ... 3. addOperation requires to provide op's attributes by adding operand. 14:19:09 ... Proposals: 14:19:22 ... 1. return Operand or sequence when adding an operation 14:19:29 ... 2. replace addOperation and operation type constants with add method for each operation 14:19:38 ... 3. add Operand addAddition(Operand a, Operand b) and Operand addMultiply(Operand a, Operand b) as start and rewrite example with the new API 14:19:57 Rafael: do we have a PR with these changes? 14:20:48 ningxin_hu: we have a second proposal with Rama after some discussion, so some details might still change, thus no PR yet 14:21:15 RRSAgent, draft minutes v2 14:21:16 I have made the request to generate https://www.w3.org/2019/06/27-webmachinelearning-minutes.html anssik 14:22:28 ningxin_hu: second proposal at https://github.com/webmachinelearning/webnn/issues/16#issuecomment-504305802 14:22:49 ... this second proposal decouples the operations from Model interface 14:25:44 API design-wise, 1st proposal is TensorTR style while 2nd proposal more like nGraph and MPSGraph style 14:26:00 s/API design-wise, 1st proposal is TensorTR style while 2nd proposal more like nGraph and MPSGraph style/... API design-wise, 1st proposal is TensorTR style while 2nd proposal more like nGraph and MPSGraph style 14:26:15 tomoyuki has joined #webmachinelearning 14:26:35 ningxin_hu: seeking feedback from the group on which proposal is preferred before crafting a spec PR 14:26:43 Present+ Tomoyuki_Shimizu 14:28:58 Rama: I have one concern: will it be clear which graph we're adding to if constructing multiple graphs e.g. if we have control flow 14:30:07 ningxin_hu: at this stage not linked to any graph, nn.createModel() specifies the output operand 14:30:43 Rama: that is a problem if users create multiple models from the same nodes, do you creates copies in that case? 14:34:15 Rafael: functionality of the API seems fine to me, modern Web APIs seem to prefer constructors over factories 14:35:04 anssik: old proposal https://github.com/webmachinelearning/webnn/issues/16#issuecomment-502921949 14:35:21 new proposal https://github.com/webmachinelearning/webnn/issues/16#issuecomment-504305802 14:36:52 dsmilkov: I prefer the second "new proposal", reason is it brings it closer to eager mode 14:37:21 ... secondly, graph is implicit on how the nodes are tied together, which is good, since you can fork 14:38:01 ... you can e.g. multiply one side, this would require re-adding ops in the first "old proposal" 14:38:51 Rama: minor comment, sharing should be possible in both the proposals 14:39:44 tomoyuki: no preference at this time on the two proposals 14:41:05 anssik: hearing slight preference for second aka "new proposal" 14:41:23 anssik: any objections to advance with the second proposal? 14:42:22 Rafael: fine with this, but suggest we try adopt constructor pattern 14:43:06 ... also nn.constant not clear you're adding something to the graph 14:43:43 [hearing no further comments or concerns] 14:44:15 PROPOSED RESOLUTION: Craft a spec PR based on https://github.com/webmachinelearning/webnn/issues/16#issuecomment-504305802 considering feedback on the call 14:44:47 RESOLUTION: Craft a spec PR based on https://github.com/webmachinelearning/webnn/issues/16#issuecomment-504305802 considering feedback on the call 14:45:22 TOPIC: Survey graph-building APIs from native ecosystem - discuss TensorRT findings, survey conclusions 14:46:04 https://github.com/webmachinelearning/webnn/issues/20#issuecomment-501255805 14:46:17 ningxin_hu: this survey informed the discussion in issue #16 14:48:19 [summarizing how each of the native API survey helped us understand on how to design a Web API that integrates with frameworks] 14:49:22 anssik: any further input for #20? 14:49:40 ningxin_hu: when #16 is fixed, close issue #20 14:50:07 TOPIC: Define the set of operations and their specification 14:50:37 gregwhitworth: bringing back this discussion we had a month ago, jonathan & co wanted to get back to this 14:50:56 ... would like to understand where we are with this issue 14:53:48 Jonathan_: followed up on the proposal re ONNX internally at Google, our involvement with ONNX has been minimal, not because opposition, we've just been busy -- still need to find a person from Google side to review this in more detail 14:54:14 ... some open questions, e.g. should this be a layered API? 14:55:39 gregwhitworth: I'm curious what the next action would be, not disagreeing exploring other operations beside those defined in ONNX meanwhile the issue is being discussed 14:56:23 https://github.com/onnx/onnx/blob/master/docs/Operators.md 14:57:04 kainino: asking for a reference what ONNX defines 14:57:25 ... https://github.com/onnx/onnx/blob/master/docs/Operators.md seems not very precise 14:58:00 gregwhitworth: if more precision needed, then that should be discussed in ONNX project 14:58:16 kainino: some of the aspects are more precise than other areas 14:59:42 gregwhitworth: agree with Jonathan it is good to consider other holistic ideas but that should not block us 15:03:40 PROPOSED RESOLUTION: The specification will reference the ONNX operations and if there are any improvements desired for ONNX the work should be there. 15:03:50 dsmilkov: we want to make further investigation into the ONNX operations being referenced 15:04:13 https://github.com/webmachinelearning/webnn/issues/17 15:05:29 Per the proposed resolution, we'll allow two weeks for folks to review and then resolve on the next telecon 15:06:23 [skipping Custom operations - framework integration case study report out: WebNN backend prototype for ONNX.js in the interest of time] 15:06:29 TOPIC: Any Other Business 15:07:54 RRSAgent, draft minutes v2 15:07:54 I have made the request to generate https://www.w3.org/2019/06/27-webmachinelearning-minutes.html anssik 15:08:42 holiday season is on, next call 8 August 2019 15:08:49 TOPIC: Adjourn 15:08:50 RRSAgent, draft minutes v2 15:08:50 I have made the request to generate https://www.w3.org/2019/06/27-webmachinelearning-minutes.html anssik 16:02:09 myles has joined #webmachinelearning 16:28:56 Zakim has left #webmachinelearning