I've got to mention two missing features that I find important:
1 - help popups: it will be nice if terms had a small help icon that can display a little context on hover/press (that's a quick win, makes unknown things usable, much easier to implement than a full manual/interactive tutorial)
2 - social login / email-only login: you are missing sign-ups (I hate having more passwords).
Yes please! I have no idea what I'm doing (ok only a little), and finally got the dimensions to match and have trainable layers, and now I am informed that 't.slice is not a function'. Hm. Maybe still a dimension problem somewhere.
Not sure how easy it will be to support all the types of layers on all platforms, but I think if target is Keras/PyTorch already going to be kick ass...
I see the cons indeed, however I thought it would be really cool to continue training of a promising model in a more capable environment in just a couple of click.
Anyone who is messing around with convolutional networks is almost guaranteed to have anaconda installed. The convenience of a few less clicks in exchange for platform lock-in is exactly the devi's deal that the 3 major cloud providers have started doing.
Think really hard about the implications of enabling them. Do you want a future where Google® Colab™ is the primary way to work with data, where personal computing is dead and replaced by cloud? That's what they are striving for with this strategy.
If by flow you mean the tensor sizes in different layers, that's a huge help for debugging, or when rewriting the net in a another framework. For debugging, you're otherwise stuck with opaque (for beginners) messages about tensor dimensions not matching. Visualizing makes the mismatches obvious, so it's common to draw the tensor sizes on paper, exactly what that visualization does.
If you want your model to train 20x faster, continuously move your mouse up and down the far left menu, or open the outline and madly expand/collapse the options for a layer :D
edit: turbo mode: keep v8 at full speed:
function sleep(ms) {return new Promise(resolve => setTimeout(resolve, ms));}; while (true) {console.log(document.getElementsByClassName("content").length); await sleep(20)};
I'm using chrome, I think the javascript engine is slowing down because it doesn't detect enough user interaction/"load"? Obviously, I'm not a fulltime web/browser developer. Hit F12, open the console, and paste in that javascript, and it will continuously run at the elevated speed, as long as it's the active tab in the current window. Break the tab out into its own window, and it will run in the background at full speed. The snippet is making a trivial call on one of the elements 50x per second, like a very gentle busy loop.
On a really basic MNIST model, 784->32dense->10dense, batch size 100, I'm getting about 2 batches per second idle, and 20 batches per second after running the above snippet.
To anyone who actually knows anything about web dev, please correct me with a proper explanation.
Wow this is great! Makes the process so much more interactive, being able to draw your own digits and it gets recognised is great. Some small issues I ran into for your todo list:
1. Load a Model -> Select model -> Dialog had some spelling mistakes.
2. Using react tools for chrome, I can see the UI is updating constantly when nothing changes. This is also making the popup flicker when mouse hovering over the graphs. The fix is to have ShouldComponentUpdate return false more!
This is super awesome! Being able to export this to colab would be amazing. I'm really looking forward to this feature! Are you willing to share which web framework you used to build your site?
Thank you for the information! I've been wanting to deploy a proof of concept webapp (mainly for my portfolio) using Amazon's Sagemaker but my website building skills is pretty limited besides using something like Jekyll. Do you have any recommendations on an upper level web framework?
Cool, project - I really believe that we need more visual tools for building and debugging neural nets.
I had a hard time figuring out how to delete a layer (the icons on the left are REALLY tiny and not obvious). Maybe adding a trash can in the graph once you've selected it would be more intuitive (heck maybe add all those icons there too).
Also, it would be great if it automatically created 'reshape' layers for you depending on what you're trying to connect or at least suggest them when you try to make a connection that doesn't fit. If I'm going to use a WYSIWG, it should make things easier for you than if you coded it by hand. When I'm doing AI stuff I find a really big portion of my time is just trying to figure out the right sizes / strides / padding etc at a given point in the graph. I feel like this would be way easier if it's automatically visualized for me or if intelligent suggestions are offered.
Editing a layer and changing the number of filters, stride or kernel size effectively changes the shape of that layer, but it should cascade a re-calculation down the path, which currently doesn't happen at least on my screen.
Super awesome! I had a similar idea about a year ago but never got to implement it. We need more visual and straightforward ways to create neural network architectures.
Can you currently create the architecture and run a given dataset against it? That would be very cool...
The demo video is very compelling! Do you support proprietary datasets?
A small suggestion: the audio on the demo video was poor quality and difficult to understand. Perhaps a better microphone or higher bitrate would help.
50 comments
[ 3.1 ms ] story [ 107 ms ] threadI've got to mention two missing features that I find important:
1 - help popups: it will be nice if terms had a small help icon that can display a little context on hover/press (that's a quick win, makes unknown things usable, much easier to implement than a full manual/interactive tutorial)
2 - social login / email-only login: you are missing sign-ups (I hate having more passwords).
2- Yep fairly easy win too as I am using Cognito for auth.
Thanks for the feedback
https://editor.aifiddle.io/models/cloud/9f33d272-5aab-40eb-8...
Maybe the last reshape is not actually legal since it reduces the number of values?
edit: Yes, I think that's it. Using Dense instead works.
Not sure how easy it will be to support all the types of layers on all platforms, but I think if target is Keras/PyTorch already going to be kick ass...
Think really hard about the implications of enabling them. Do you want a future where Google® Colab™ is the primary way to work with data, where personal computing is dead and replaced by cloud? That's what they are striving for with this strategy.
edit: turbo mode: keep v8 at full speed:
function sleep(ms) {return new Promise(resolve => setTimeout(resolve, ms));}; while (true) {console.log(document.getElementsByClassName("content").length); await sleep(20)};
On a really basic MNIST model, 784->32dense->10dense, batch size 100, I'm getting about 2 batches per second idle, and 20 batches per second after running the above snippet.
To anyone who actually knows anything about web dev, please correct me with a proper explanation.
One missing feature would be an "undo" function - I accidentally deleted a layer and couldn't find a way to undelete it?
Edit: just found an error when trying to actually train a network:
TypeError: Argument 1 of WebGL2RenderingContext.clientWaitSync is not an object.
This was doing a very simple MNIST->dense(200)->dense(1)->output model using Firefox 65
1. Load a Model -> Select model -> Dialog had some spelling mistakes.
2. Using react tools for chrome, I can see the UI is updating constantly when nothing changes. This is also making the popup flicker when mouse hovering over the graphs. The fix is to have ShouldComponentUpdate return false more!
"Appologies AiFiddle currently does not support mobile device.
Do you want to get notified on futur updates ?"
'Apologies' and 'future'.
Looks promising though, will check back when on desktop.
I had a hard time figuring out how to delete a layer (the icons on the left are REALLY tiny and not obvious). Maybe adding a trash can in the graph once you've selected it would be more intuitive (heck maybe add all those icons there too).
Also, it would be great if it automatically created 'reshape' layers for you depending on what you're trying to connect or at least suggest them when you try to make a connection that doesn't fit. If I'm going to use a WYSIWG, it should make things easier for you than if you coded it by hand. When I'm doing AI stuff I find a really big portion of my time is just trying to figure out the right sizes / strides / padding etc at a given point in the graph. I feel like this would be way easier if it's automatically visualized for me or if intelligent suggestions are offered.
Can you currently create the architecture and run a given dataset against it? That would be very cool...
A small suggestion: the audio on the demo video was poor quality and difficult to understand. Perhaps a better microphone or higher bitrate would help.