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.
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!
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.
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.
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.
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.
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?
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.
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.
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.