TensorWatch, an open source debugging and visualization tool has been introduced recently by researchers at Microsoft. The tool is intended to reduce the complexities related to training metrics, the cost of getting information from the state of the system, etc. in deep learning models.
The researchers at Microsoft emphasise TensorWatch is the Swiss Army knife of debugging tools since it includes various advanced capabilities and concepts. This tool is designed for data science, deep learning and reinforcement learning and it mainly works in Jupyter Notebook.
Fig: TensorWatch running in Jupyter Notebook (Source)
Below we have mentioned the key features of TensorWatch
This platform runs on Jupyter Notebook instead of any other pre-packaged user interfaces making it more customizable. With the help of either composable user interface in Jupyter Notebook or live shareable dashboards, this tool provides debugging of real-time training processes of machine learning algorithms. The researchers have used Python programming language to build this tool which will eventually help users to build their own customised user interface or can easily work in the data science ecosystem of Python.
Standard visualization types such as bar charts, scatter charts, pie charts, etc. along with the 3D variations are being supported by this platform. All you need to do is choose and specify the chart type and the rest will be taken care of by TensorWatch. It has the ability to combine, compose and create customized visualizations effortlessly.
Use Of Streams
The architecture of TensorWatch has dealt with the data and other objects as streams which includes cloud storage, files, console, visualisations, etc. In such cases, for instance, several streams can be interpreted in a single visualization or a single stream can be interpreted into several visualizations simultaneously. By default, TensorWatch saves all streams in a single file but it depends on whether you want to save each stream in separate files or all the streams in one file.
Lazy Logging Mode
With the help of lazy logging mode, one can easily track a large number of variables which includes large models or the entire batches during the training of a machine learning model, perform interactive queries, and many more.
Phases Of Model Development
TensorWatch improves the debugging capabilities in the pre-training and post-training phases of model development by including several features from open source libraries such as model graph visualization, data exploration through dimensionality reduction, model statistics and several prediction explainers for convolution networks.
How Does TensorWatch Work
As we have said before that almost everything in TensorWatch is a stream and with a common interface the streams can listen to any other streams which in return helps in creating custom data flow graphs. A simple description of the working procedure is discussed below:
- When something is written in the TensorWatch stream, the values get serialised and sent to a TCP/IP socket including the file which you have specified.
- From Jupyter Notebook, the previously logged values will be loaded from the file and then the TCP-IP socket will listen for any other future values.
- The visualiser then listens to the stream and renders the values as they arrive.
How To Get It
TensorWatch supports Python version 3.x and has been tested with Pytorch 0.4-1.x. To install this platform, type: pip install tensorwatch
Besides the intuitive functionalities, this interactive tool is flexible and extensible so that one can build customized visualizations, dashboards and other user interfaces. The field of data science is growing in an exponential manner along with the complexities of data and models. This platform will undoubtedly help the researchers with a goal of debugging machine learning tantrums.
Click here to install.