Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Collect use cases #1

Closed
tomoyukilabs opened this issue Oct 18, 2018 · 9 comments
Closed

Collect use cases #1

tomoyukilabs opened this issue Oct 18, 2018 · 9 comments

Comments

@tomoyukilabs
Copy link

This issue is to collect low- and high-level use cases of WebML API to input to the F2F meeting at TPAC 2018.
https://github.com/webmachinelearning/meetings/blob/master/2018-10-26-lyon/README.md#1600-target-demographic-use-cases-and-requirements-all

@tomoyukilabs
Copy link
Author

tomoyukilabs commented Oct 18, 2018

I would like to input the following use cases at application and API levels. I'd be pleased if those could be useful for WebML CG. Any comments are welcome.

High-Level Use Cases

This section illustrates application-level use cases for the Web Machine Learning API (WebML API). All applications in those use cases can be built on top of pre-trained deep neural network (DNN) models.

Person Detection

A user is browsing a social network website and wishes to take a photo and upload it to the website. Before the photo is uploaded, the website runs SSD (Single Shot MultiBox Detector) or YOLO on the WebML API to detect regions that include persons so that the user can filter and de-personalize irrelevant persons on it.

Skeleton Detecton

A user opens a web application that continuously captures her body with her smartphone's camera. The web application extracts her skeleton by running PoseNet on the WebML API to recognize her gesture or body language. When she strikes a specified pose like raising a hand, the web application automatically takes a photo and upload it to an online storage.

Random Image Generation

A user wishes to make her new account and looks for a new icon image. When she clicks a "Generate" button on the webpage for creating an account, the webpage runs a generator model of generative adversarial network (GAN) for icon synthesis on the WebML API. She can repeat random icon generation until she finds her favorite one.

Low-Level Use Cases

This section collects API-level use cases for the WebML API. My assumption is that ML frameworks would refer to WebML API so that application developers could make use of those capabilities via the frameworks.

Custom Layer

A web application developer wants to run a DNN model on the WebML. However, she has found that some of activation functions like Leaky ReLU, ELU, etc. are not included in the WebML API. So she builds custom layers of the additional activation functions on top of the WebML API. Note that the scope of custom layers may include convolution, normalization, etc. as well as activation.

Network Concatenation

A web application developer is trying to implement a DNN model that refers to outputs from some convolutional layer in MobileNets or ResNet as a feature map. She wants to use a pre-trained model of these networks to reduce training time. So she implements her network architecture so that its input is the output of convolutional layers of pre-trained MobileNets or ResNet models.

Performance Adaptation

A web application developer has a concern about performance of her DNN model on mobile devices. She has confirmed that the model runs too slow on mobile devices which does not have GPU acceleration. So her web application refers to the WebML API to confirm whether acceleration is available or not, so that the application can display the warning for devices without acceleration.

After several weeks, she has developed a tiny DNN model that can even run on CPU. So she modifies the application so that the application loads the tiny model in the case of CPU-only devices.

@anssiko
Copy link
Member

anssiko commented Oct 18, 2018

Thanks! Added to the F2F agenda.

(All - let’s use this issue to document any other use cases.)

@cynthia
Copy link

cynthia commented Oct 26, 2018

I believe the above text should
s/adversarial generative network/generative adversarial network/

@tomoyukilabs
Copy link
Author

@cynthia Correct. Thanks!

@anssiko
Copy link
Member

anssiko commented Nov 1, 2018

@tomoyukilabs, at F2F, we agreed to add use cases directly to the specification to make it obvious they inform the spec work. There was consensus that your use cases could be used as a starting point to be iterated further based on F2F feedback.

To get us started with this process, feel free to submit a PR against the newly created spec repo https://github.com/webmachinelearning/webnn to add your use cases to the skeleton spec. There's an empty "Use cases" section at https://webmachinelearning.github.io/webnn/#usecases ready for your contributions.

The initial contribution does not need to be perfect since this section is expected to evolve until the group feels it's ready to advance to the solution phase aka API specification drafting.

Thank you!

@tomoyukilabs
Copy link
Author

@anssiko Okay, I'll submit a PR to add use cases (maybe in next week). Thanks!

@anssiko
Copy link
Member

anssiko commented Nov 6, 2018

@tomoyukilabs, I forgot to mention the use cases PR will go through the usual PR review flow to capture suggestions and contributions from F2F discussion so you can basically make the initial commit based on what you have in #1 (comment) and we'll iterate on it as a group before merging. This way we'll also get a better paper trail of changes attributed to the right people.

@tomoyukilabs
Copy link
Author

@anssiko I have submitted a PR webmachinelearning/webnn#2 that includes use cases copied from
#1 (comment). When a review to capture the F2F discussion is posted, I'll follow the review by updating the PR.

@anssiko
Copy link
Member

anssiko commented Jan 12, 2019

This issue was addressed in PR webmachinelearning/webnn#2

@anssiko anssiko closed this as completed Jan 12, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants