前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TensorWatch:用于数据科学和机器学习的调试和可视化工具

TensorWatch:用于数据科学和机器学习的调试和可视化工具

作者头像
代码医生工作室
发布2019-06-21 17:28:38
3.5K0
发布2019-06-21 17:28:38
举报
文章被收录于专栏:相约机器人

来源 | GitHub

编辑 | 代码医生团队

欢迎来到TensorWatch

TensorWatch是一个调试和可视化工具,专为Microsoft Research的深度学习和强化学习而设计。它适用于Jupyter Notebook,可显示机器学习训练的实时可视化,并执行模型和数据的其他几个关键可视化。

TensorWatch旨在灵活且可扩展,因此您甚至可以构建自己的自定义可视化,UI和仪表板。除了传统的所见即所得的方法外,它还具有针对您的实时ML训练流程执行任意查询的独特功能,作为查询结果返回流并使用您的选择查看此流可视化器(我们称之为延迟日志记录模式)。

https://github.com/microsoft/tensorwatch#lazy-logging-mode%5D

TensorWatch正在大力发展,其目标是通过一个易于使用,可扩展和可破解的软件包提供调试机器学习的平台。

如何获得它

代码语言:javascript
复制
pip install tensorwatch

TensorWatch支持Python 3.x,并使用PyTorch 0.4-1.x进行测试。大多数功能也应该与TensorFlow急切张量一起使用。

如何使用它

快速开始

这是一个简单的代码,它每秒将一个整数及其正方形记录为TensorWatch的元组:

代码语言:javascript
复制
import tensorwatch as tw
import time
 
# streams will be stored in test.log file
w = tw.Watcher(filename='test.log')
 
# create a stream for logging
s = w.create_stream(name='metric1')
 
# generate Jupyter Notebook to view real-time streams
w.make_notebook()
 
for i in range(1000):
    # write x,y pair we want to log
    s.write((i, i*i)) 
 
    time.sleep(1)

运行此代码时,会注意到test.ipynb在脚本文件夹中创建了一个Jupyter Notebook文件。从命令提示符键入jupyter notebook并选择test.ipynb。在菜单中选择“ 单元格”>“全部运行”以查看实时线图,因为值将写入脚本中。

这是将在Jupyter Notebook中看到的输出:

要深入了解其他各种功能,请参阅教程和笔记本。

https://github.com/microsoft/tensorwatch#tutorials

https://github.com/microsoft/tensorwatch/tree/master/notebooks

这是如何运作的?

当写入TensorWatch流时,值将被序列化并发送到TCP / IP套接字以及您指定的文件。从Jupyter Notebook中,从文件中加载以前记录的值,然后监听该TCP / IP套接字以获取任何未来值。可视化工具监听流并在值到达时呈现值。

好的,这是一个非常简化的描述。TensorWatch架构实际上更强大。TensorWatch中的几乎所有内容都是一个流。文件,套接字,控制台甚至可视化器都是流本身。关于TensorWatch流的一个很酷的事情是它们可以收听任何其他流。这允许TensorWatch创建数据流图。这意味着可视化工具可以同时监听多个流,每个流可以是文件,套接字或其他流。可以递归地扩展它以构建任意数据流图。TensorWatch将流与它们的存储方式以及它们如何可视化分离。

可视化

在上面的示例中,折线图用作默认可视化。但是TensorWatch支持许多其他图表类型,包括直方图,饼图,散点图,条形图和许多这些图的3D版本。可以记录数据,指定所需的图表类型,让TensorWatch负责其余部分。

TensorWatch的一个显着优势是能够毫不费力地组合,组合和创建自定义可视化。例如可以选择在同一图中可视化任意数量的流。或者可以在许多不同的情节想象同一个流同时。或者可以并排放置任意一组可视化。甚至可以通过创建新的Python类,实现一些方法来创建自己的自定义可视化小部件。

比较多次运行的结果

每个TensorWatch流可能包含您选择的度量标准。默认情况下,TensorWatch将所有流保存在单个文件中,但也可以选择将每个流保存在单独的文件中,或者根本不保存它们(例如,通过套接字直接发送流或直接进入控制台,零点击到磁盘! )。稍后可以打开这些流并将它们指向一个或多个可视化。通过此设计,可以轻松地在您选择的可视化中快速比较不同实验的结果。

Jupyter笔记本内的训练

通常可能更喜欢进行数据分析,ML训练和测试 - 所有这些都来自Jupyter Notebook,而不是来自单独的脚本。TensorWatch可以帮助轻松地从端到端的Jupyter笔记本中运行的代码轻松实现复杂的实时可视化。

延迟记录模式

TensorWatch中的一个独特功能是查询实时运行过程,将此查询的结果作为流检索并将此流定向到首选可视化的功能。无需事先记录任何数据。将这种调试和可视化的新方式称为延迟日志记录模式。

例如如下所示,可视化输入和输出图像对,在水果数据集上训练自动编码器期间随机采样。这些图像未事先记录在脚本中。相反用户将查询作为Python lambda表达式发送,这会导致在Jupyter Notebook中显示的图像流:

请参阅Lazy Logging Tutorial。

https://github.com/microsoft/tensorwatch/blob/master/docs/lazy_logging.md

训练前和训练后的任务

TensorWatch利用几个优秀的库,包括hiddenlayer,torchstat,Visual Attribution,允许在一个一致的包和接口中执行常规的调试和分析活动。

例如,可以使用单线程查看具有张量形状的模型图:

可以查看不同层的统计信息,例如触发器,参数数量等:

https://github.com/microsoft/tensorwatch/blob/master/notebooks/network_arch.ipynb

可以使用t-SNE等技术在较低维空间中查看数据集:

https://github.com/microsoft/tensorwatch/blob/master/notebooks/data_exploration.ipynb

预测解释

希望提供各种工具来解释预测,以帮助调试模型。目前为卷积网络提供了几种解释器,包括Lime。例如以下重点介绍导致Resnet50模型对Imagenet数据集的类240进行预测的区域:

https://github.com/microsoft/tensorwatch/blob/master/notebooks/cnn_pred_explain.ipynb

教程

简单的日志教程

https://github.com/microsoft/tensorwatch/blob/master/docs/simple_logging.md

延迟记录教程

https://github.com/microsoft/tensorwatch/blob/master/docs/lazy_logging.md

使用TensorWatch进行深度学习训练(MNIST)

https://github.com/microsoft/tensorwatch/blob/master/notebooks/mnist.ipynb

使用TensorWatch进行深度学习训练(Food360)

https://github.com/microsoft/tensorwatch/blob/master/notebooks/fruits_analysis.ipynb

使用T-SNE探索数据

https://github.com/microsoft/tensorwatch/blob/master/notebooks/data_exploration.ipynb

卷积神经网络的预测解释器

https://github.com/microsoft/tensorwatch/blob/master/notebooks/cnn_pred_explain.ipynb

查看模型图和统计

https://github.com/microsoft/tensorwatch/blob/master/notebooks/network_arch.ipynb

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 相约机器人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档