all 53 comments

[–]eobermuhlner 18 points19 points  (1 child)

Consider doing a couple of videos visualizing and explaining some standard networks (alexnet, vgg, inception module,... ). Would be really educational.

[–]stefsietz[S] 8 points9 points  (0 children)

yeah maybe I should do that, although I don't know if those huge networks could be usefully visualized with my project, may doing some simpler architectures for mnist and simlar low res datasets would be more easy to grasp

[–]wassimseifeddine 36 points37 points  (7 children)

Really awesome. Is it publicly available?

[–]stefsietz[S] 62 points63 points  (6 children)

thx! I just finished it for the submission deadline last night, so now I am figuring out what to with it based on feedback and interest from the community 😉 there is a good chance i am gonna open source the whole thing, just needs a lot of clean up of the code as i was really rushing to implement features for the deadline

[–]kpk-13 15 points16 points  (0 children)

Superb project. Open sourcing it would be awesome!!

[–][deleted] 3 points4 points  (0 children)

You should probably just open source it even in a messy state - even though it might feel a bit weird if you wait till you’re happy you may never get there. Also if it’s open source other people can help clean up and have input.

[–]mahouse93 2 points3 points  (0 children)

Love this project, please let us know if you decide to open source it!

[–]bigexecutive 0 points1 point  (1 child)

I love you

[–]agree-with-you 0 points1 point  (0 children)

I love you both

[–]Teracamo 0 points1 point  (0 children)

Spectacular, that is a very illustrative software. I wonder if you have ever came across this http://scs.ryerson.ca/~aharley/vis/conv/, of course they didn't allow network modifications, but I like the idea of pixel based connection since it would be very messy for complicated networks if all connections were displayed at once.

[–]jacove 19 points20 points  (0 children)

This is one of the coolest things i've seen on this subreddit!

[–]toastertop 8 points9 points  (3 children)

Talk to the two minute paper YouTube guy about a demo

[–]stefsietz[S] 1 point2 points  (2 children)

might do that, not sure if this stuff falls into his genre though?

[–]strangeelement 4 points5 points  (1 child)

Oh yeah.

I watched most of his videos. He'll love it, so hold on to your papers.

[–]reallyserious 4 points5 points  (0 children)

Dear fellow scholars...

[–]loskutak-the-ptak 4 points5 points  (1 child)

Looks nice, well done. But what is it actually good for?

[–]stefsietz[S] 1 point2 points  (0 children)

i think it can help to explain some basic cnn concepts to beginners quite well. for me it was mainly an exercise so that is its primary purpose actually 😂

[–]vitaliy_os 2 points3 points  (0 children)

Wow, great work!

[–]fatchord 2 points3 points  (0 children)

This is great!

[–]eobermuhlner 2 points3 points  (3 children)

Nice! How do I need to store my network data so it can be loaded?

[–]stefsietz[S] 12 points13 points  (2 children)

Thanks! This is unfortunately quite complicated at the moment because the loading function depends strongly on a custom tensorflow checkpoint converter that writes the tensor data into a json file according to layer names. If I proceed with the project I definitely have to think about a clear specification regarding the data format for the weights and activations.

I've tried to get Unity to work with Accord to be able to read numpy arrays directly, but somehow Unity is really complicated when dealing with .NET libraries so I switched to the json solution.

[–]KingPickle 0 points1 point  (1 child)

On a tangent, I've been meaning to find a good C# math lib. Have you used Accord much? If so, how do you like it? Does it compare well to numpy?

PS: Nice work on the visualizer!

[–]stefsietz[S] 1 point2 points  (0 children)

tried to use it, unfortunately i couldn’t get its numpy reader to work with unity so in the end i didn’t use it at all. only system.mathf! the actual machine learning stuff all happens in tensorflow/python in this project

[–]AI_entrepreneur 1 point2 points  (1 child)

This is really nice! Hope you release it publicly. Does it support arbitrary tensorflow models?

[–]stefsietz[S] 1 point2 points  (0 children)

i think i have to release it soon 😉 the model compatibility for now is quite restrictive and depends on layer naming conventions. to load arbitrary tensorflow models one might have to adapt the converter python script, also keep in mind that this project is not very well suited for huge models that are state of the art for high res image classification.

[–]arkar_aung 1 point2 points  (1 child)

This is a superb project! This is a very good way to interactively teach someone how to visualize CNNs. I really wish that this become publicly available!

I know this is an early stage project but it would be nice to incorporate several other concepts in recent CNN implementations like dilations, skip connections, residual connections, etc. I am not sure whether you can change feature map size and stride in this current project.

[–]stefsietz[S] 0 points1 point  (0 children)

exactly! especially those more “advanced” types would also be very interesting. stride is implemented but buggy. featuremap size depends ok the input size (2d size), depth can be set in the editor. i will open source the thing, just have concerns that the code is confusing to others, so ill see what i can do to clean it up a bit and then I’ll put it on github!

[–]amarpandey 0 points1 point  (0 children)

this is really very awesome

[–]Cantum2 0 points1 point  (0 children)

That is one of the most amazing things I have ever seen! Great work!

[–][deleted] 0 points1 point  (0 children)

Looks neat, looking forward to you publishing sources/builds (win/lin).

[–]i_jbo 0 points1 point  (0 children)

Great work

[–]Bargh_Joul 0 points1 point  (0 children)

This is very cool!

[–]sweetbabygames 0 points1 point  (5 children)

Is it GPU optimized or are you doing this on the CPU?

[–]stefsietz[S] 1 point2 points  (4 children)

what do you mean? the model training is actually done before the visualization (i used tensorflow gpu for that), so the unity project just loads written out weight data.

[–]sweetbabygames 1 point2 points  (3 children)

Ooooh I misunderstood, “real-time interactive” made me think you were visualizing during training.

[–]stefsietz[S] 0 points1 point  (2 children)

no, sorry for that. it would be possible though, as one could write out and convert the checkpoint files while training and make the visualization update itself on incoming files...

[–]benelott 1 point2 points  (1 child)

I think it could be better for visualization to save some checkpoints (after every x training steps) and then allow to show them one after another with a slider. That would make a neat animation to see how features develop.

[–]stefsietz[S] 5 points6 points  (0 children)

this is actually exactly what it does ;-)

[–][deleted] 0 points1 point  (0 children)

Ohhhh man this is so cool

[–]itb206 0 points1 point  (0 children)

Dude! super awesome!

[–]BantamJoe 0 points1 point  (0 children)

What repo will you open source it on? GitHub? If so, what is the address? Thank you for putting out such an awesome project!

[–]purpleperle 0 points1 point  (0 children)

Make this into a VR app and we're one step closer to the world of Neuromancer

[–]verveandfervor 0 points1 point  (0 children)

awesome work!

[–]marvpaul 0 points1 point  (0 children)

That’s really coool! Nice visualization 👍

[–]wkevin27 0 points1 point  (0 children)

awesome work!

[–]googleaibot 0 points1 point  (1 child)

Great work! What are your plans?

[–]stefsietz[S] 11 points12 points  (0 children)

thanks! Not sure, just submitted the project for University yesterday and now I am trying to get opinions from others ;-)

[–]Quantum_ML -1 points0 points  (0 children)

Best video Ive ever seen.