The functionality of the executable includes loading and visualizing Tensorflow weights and featuremap activations from a custom Json format that has to be converted with a python script from original .ckpt binary files.
This can be very useful to teach and explain the flow of computation of a CNN, as well as to inspect the change of weights and activations over the course of a training run, because the loading and switching between epochs is supported as well.
After loading the training sample by typing its number into the text field and pressing the "load" button, a number of parameters can be changed, most notably the epoch and the line width, the latter enabling an unobstructed view at all feature maps when set to zero, as seen in the image below.
The project also makes it possible to build/design a CNN in the Unity Editor, by combining pre configured Game Objects (Prefabs) with each other to build the graph. Each consecutive layer expects an input layer, the layout is then done automatically based on the graph.
In this mode, a large number of parameters allows the user to collapse and expand each layer in various ways. It is for example possible, to seemlessly transition between showing only the filters as edges or showing all of the calculations, to bundle fully connected connections to a center point for complexity reduction, etc. (see images below for examples)
Edge bundled layers with one convolutional layer showing all calculations.
"All calculation" mode up close.
Fully connected layer showing all weights.
Fully connected layer showing collapsed view for simplicity, where only one edge leaves each input featuremap.
Default view with the display of the real number of filter weights as edges.
Display of smaller feature maps in full number in case the main feature map number had been reduced for simplicity.