
Please read the complete description in article Clarifying exceptions and visualizing tensor operations in deep learning code.
TensorSensor is currently at 0.1b1 so I'm happy to receive issues created at this repo or direct email.
For more, see examples.ipynb.
import torch
W = torch.rand(d,n_neurons)
b = torch.rand(n_neurons,1)
X = torch.rand(n,d)
with tsensor.clarify():
Y = W @ X.T + bDisplays this in a jupyter notebook or separate window:
Instead of the following default exception message:
RuntimeError: size mismatch, m1: [764 x 100], m2: [764 x 200] at /tmp/pip-req-build-as628lz5/aten/src/TH/generic/THTensorMath.cpp:41
TensorSensor augments the message with more information about which operator caused the problem and includes the shape of the operands:
Cause: @ on tensor operand W w/shape [764, 100] and operand X.T w/shape [764, 200]
pip install tensor-sensor
which gives you module tsensor. I developed and tested with the following versions
$ pip list | grep -i flow
tensorflow 2.3.0
tensorflow-estimator 2.3.0
$ pip list | grep -i numpy
numpy 1.18.5
numpydoc 1.1.0
$ pip list | grep -i torch
torch 1.6.0
I rely on parsing lines that are assignments or expressions only so the clarify and explain routines do not handle methods expressed like:
def bar(): b + x * 3
Instead, use
def bar():
b + x * 3
watch out for side effects! I don't do assignments, but any functions you call with side effects will be done while I reevaluate statements.
Can't handle \ continuations.
Also note: I've built my own parser to handle just the assignments / expressions tsensor can handle.
$ python setup.py sdist upload Or download and install locally
$ cd ~/github/tensor-sensor
$ pip install .- can i call pyviz in debugger?
- try on real examples
dict(W=[3,0,1,2], b=[1,0])that would indicate (300, 30, 60, 3) would best be displayed as (30,60,3, 300) and b would be first dimension last and last dimension first