- From: Anssi Kostiainen <notifications@github.com>
- Date: Thu, 04 Feb 2021 09:39:07 -0800
- To: w3ctag/design-reviews <design-reviews@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3ctag/design-reviews/issues/570/773484505@github.com>
Discussed this TAG feedback on the WebML CG call today ([minutes](https://www.w3.org/2021/02/04-webmachinelearning-minutes.html#t02)). Below are the responses and [issues labeled with "tag"](https://github.com/webmachinelearning/webnn/issues?q=is%3Aissue+is%3Aopen+label%3Atag) opened in response to the feedback. Thank you! >1. The fact that a GRU is in there really sticks out. I somehow found out why it is there, but it feels extremely inconsistent with the rest of the API which is fairly generic. (e.g. you should have a LSTM and a GRU, but not just a GRU - that's weird.) This is because we're not feature complete yet, this is a "v1" API. >2. In the spec, some of the activations are out in global scope (e.g. relu), some are in unary operators (sigmoid, tanh) - this doesn't look consistent. https://github.com/webmachinelearning/webnn/issues/133 >3. The spec mentions training in the batch normalization section - but I'm fairly convinced that there is no support for training. Is this an error? https://github.com/webmachinelearning/webnn/issues/134 >4. getNeuralNetworkContext() and createModelBuilder() seem strange (no parameters, for one thing) - is this expected to accept parameters/configs at some point? If so, we'd like to see what is intended here. https://github.com/webmachinelearning/webnn/issues/135 >5. Wouldn't it make sense to have a constructor rather than a builder pattern for createModelBuilder()? (e.g. new ModelBuilder(navigator.ml.getNNContext()); https://github.com/webmachinelearning/webnn/issues/136 >6. I see quite a few view/reshape like functions, which of these are expected to copy and which are not? Probably good to note this in the spec. https://github.com/webmachinelearning/webnn/issues/137 >7. If there are layers that will be taking activations as string enums, there should simply be a string enum for activations rather than have it just in RecurrentNetworkActivation. (One may argue that hyperbolic tangent is RNN specific, but...) https://github.com/webmachinelearning/webnn/issues/138 >8. While the limitations of JavaScript probably contribute a lot to this, but the ergonomics of this API based on example code might have room for improvement. https://github.com/webmachinelearning/webnn/issues/139 >9. It feels like errors/exceptions should probably fleshed out. (e.g. what happens when you try to reduce on a non-existent axis?) https://github.com/webmachinelearning/webnn/issues/19 >10. I don't quite understand the NamedOutput mechanism. What if what is output just a feature? https://github.com/webmachinelearning/webnn/issues/140 >11. A lot of the names are very generic (Operand, Compilation) - this feels like something we might want to prefix with something or synchronize with TC39 about. https://github.com/webmachinelearning/webnn/issues/141 >12. What's the isomorphic JS story for this? Also, given that this is attached to vanilla navigator, is this not expected to work in a worker scope? https://github.com/webmachinelearning/webnn/issues/142 >13. Given that bootstrapping a network is a lot of work, would it make sense to have some sort of serialization/caching story here? A non-goal per the explainer. >Nits: >1. The one case I saw clamp() being used seemed to implement a relu? >2. Search for "creatModelBuilder" in the explainer. >One more point - feels like having a Sequential() would be nicer syntax wise. https://github.com/webmachinelearning/webnn/issues/143 We ran out of time here. The rest of the feedback to be discussed on another call. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/w3ctag/design-reviews/issues/570#issuecomment-773484505
Received on Thursday, 4 February 2021 17:39:20 UTC