The above example shows most of the things I've implemented so far. It's just a couple of hunderd lines of python and javascript I've written on free time. I am planning to cleanup the code and host it on github. Right now the code is messy, and needs to be fixed almost everytime I use it.

Cover more tensorflow operations¶

Current implementaion is only for a few common tensorflow functions.

Also, the library doesn't do operator overloading which is really important. That is, we should be able to write X / Y instead of tf.divide(X, Y)

Diagrams to how operations work¶

We need to include more details in diagrams to explain complex operation. For instance, we can indicate padding, strides and kernal size in the diagram for convolution operation. We can do similar diagrams for tensor transformations.

Also, the current 2-D and 3-D tensor diagrams might not be the best in all situations. It sometimes makes more sense not to show individual cells, butto show the sizes of the dimensions.

Why I decided to show individual cells is with the intention of adding details like highlighted cells, kernels, etc on the same diagram.

It's sometimes important to show higher dimensianality, especially for operations like reshaping and tiling.

And, on some occasions, it may be just enough to show the shape of the tensor in text; e.g. ([?, 10, 50, 20, 10]) .

Function Wrappers¶

For example, we can wrap the function squash .

wrap(tensor(['N', 'H', 'W']) def squash(s, axis=-1, epsilon=Noob(tf.constant, 1e-7), name=None): ...

And it can display the full formula for the function and the output tensor dimensions. This will help us test functions before calling them, and help readers get an overview of the function without reading the internals.

Please give your feedback. Find me on twitter @vpj.¶