Recently, Microsoft introduced TensorWatch, an open-source debugging and visualization tool for Machine Learning. The company calls TensorWatch a Swiss Army knife of debugging tools with many advanced capabilities.

TensorWatch extensively leverages Jupyter Notebook rather than prepackaged user interfaces, which are often difficult to customize. It enables you to do interactive debugging of real-time training processes using a composable UI in Jupyter Notebooks or the live shareable dashboards in Jupyter Lab.

Since TensorWatch is a Python library, it allows you to build your own custom UIs or use TensorWatch in the Python data science ecosystem.

Source: Microsoft

The architecture of TensorWatch uniformly treat data and other objects as streams. So, with a common interface, TensorWatch streams can listen to other streams. This enables the creation of custom data flow graphs.

This way, TensorWatch trivially enables you to implement a variety of advanced scenarios.

"you can render many streams into the same visualization, or one stream can be rendered in many visualizations simultaneously, or a stream can be persisted in many files, or not persisted at all. The possibilities are endless!" wrote the company.

Alongside TensorWatch, Microsoft is also introducing lazy logging mode, which doesn’t need explicit logging of all the information beforehand. Instead, you can have TensorWatch observe the variables. You can track as many variables as you want, including large models or entire batches during the training. After that TensorWatch allows you to perform interactive queries that run in the context of these variables and returns the streams as a result. And as you can expact, these streams can then be visualized, saved, or processed as required.