Show HN: TensorSpace.js – Neural network 3D visualization framework
github.com
github.com
And then I followed up with an early TensorFlow visualizer https://github.com/ericjang/tdb
It turns out that while such tools seem useful at first glance, they turn out to not be that helpful to power users. For models bigger than LeNet, things get really ugly to visualize. And once you understand a high-level module and can take its training for granted, there isn't a need anymore to really look at it anymore. It can also be kind of annoying to tumble around in 3D when you just want to look at some activation maps. What does the 3D aspect of the visualization buy you here?
Tools like TensorBoard + Jupyter notebooks for inspecting weights and ad-hoc visualizations (e.g. VizDom) seem to strike the right balance.
If you want to continue pushing in this direction, I highly encourage embarking on an actual Deep Learning research project using your tool. In ML it's so important to dogfood your own software!
Some may not need such a tool, and can easily visualise the layers, interconnections, functionality, etc. Others may be able to get by with 2D and "paper" representations.
I think, though, there may be a segment of learners who could benefit from a tool like this. For such people, the tool wouldn't have to support anything super-complex; smaller models and architectures would be fine.
I don't have a lot of experience with ANNs (just a few MOOCs and tutorials here and there), but from what I recall from those experiences, a tool like this could be beneficial, both for visualizing a complete NN graph, as well as visualizing a partial graph as it is built up, layer by layer (and to investigate "middle layer" operations and processes).
Honestly speaking, there are many mature tools for developers to use in model training, and everyone has own "optimum scheme". For me, TensorSpace is not designed to be a "silver bullet" to replace previous solutions or tools, I hope it can help engineers understand existing models and find areas where they can be applied.
Personally, I am interested in data visualization, and I found that neural network visualization is really a cool area. My original intention to make TensorSpace is to share this "beautiful scenery" with hackers!
What am I supposed to learn from them? What is the actionable information? That's not really a criticism, I just feel like I'm missing something.
If you're looking for ideas on what sort of information to display in the visualizations, this article is just chock full of them: https://distill.pub/2018/building-blocks/
PS I actually worked on something similar, was quite fun... http://www.andreykurenkov.com/projects/major_projects/KerasJ...
I have viewed your blog, and it is really fun. However, it is a pity that the online demo is outdated. Could you tell me what technique you use to construct 3D scene? Thanks.
1. display weights and gradients (in addition to activations)
2. display how activations/weights/gradients change during training. For example, I should be able to point to checkpoint directory where my model is saved every epoch (or every few iterations), and then hit 'play' button to see how a particular feature map or weights filter is changing as I move between epochs/iterations.
3. display which inputs contribute the most to the activations, at every layer.
These additional features would be very useful for debugging, for model compression, for identifying information flows (e.g. in a DenseNet), for saliency analysis, and probably for other things as well.
And for others features, we are discussing how to integrate them with TensorSpace, looking forward to your further suggestions.
Totally independently, we had the same idea of visualizing a DL in VR using an oculus -- a few months ago. We worked on it last Friday and Saturday in our hackathon: https://www.u-hackmed.org/ https://www.u-hackmed.org/2018teams/team-3
Here is a demo: https://youtu.be/E_VWewj_jX8
Really cool ideas going around in this thread. I really like thoughts around visualizing the changes during training -- not just activation.
As these tools currently stand, I agree that they are mostly for educational purposes. Taken to the nth degree, however, I think they can make a DL expert put on a VR headset when they get to work.
Going to check out how to process my model from keras to use with this tool. Doesn't like that complicated.
Gonna give this a shot :)
Great work !