华悦网
当前位置: 首页 >头条 >社会 >正文

TensorSpace:超酷炫3D神经网络可视化框架

2021-11-09 04:58    

选自 PaperWeekly

作者:刘遥行

学校:圣何塞州立大学硕士生

研究方向:AI与现实生活的工业结合


TensorSpace - 一款 3D 模型可视化框架,支持多种模型,帮助你可视化层间输出,更直观地展示模型的输入输出,帮助理解模型结构和输出方法。


是什么(What)


TensorSpace 是一款 3D 模型可视化框架,一动图胜千言。 



官网链接:

https://tensorspace.org/

Github链接:

https://github.com/tensorspace-team/tensorspace


TensorSpace 擅长直观展示模型结构和层间数据,生成的模型可交互。官方支持手写字符识别,物体识别,0-9 字符对抗生成网络案例等。


为什么(Why)


本部分说明:为什么要使用这个框架?这个框架主要解决了什么问题?我们的灵感来源于何处?


3D神经网络可视化一片空白 


在机器学习可视化上,每个机器学习框架都有自己的御用工具,TensorBoard 之于 TensorFlow ,Visdom 之于 PyTorch,MXBoard 之于 MXNet。这些工具的 Slogan 不约而同地选择了 Visualization Learning(TensorBoard的 Slogan),也就是面向专业机器学习开发者,针对训练过程,调参等设计的专业向可视化工具。


但面向一般的计算机工程师和非技术类人才(市场、营销、产品等),一片空白,没有一个优秀的工具来帮助他们理解机器学习模型到底做了什么,能解决一个什么问题。


机器学习开发和工程使用并不是那么遥不可及,TensorSpace 搭建桥梁连接实际问题和机器学习模型。


3D可视化的信息密度更高更直观


市面上常见的机器学习可视化框架都是基于图表(2D),这是由它们的应用领域(训练调试)决定的。但 3D 可视化不仅能同时表示层间信息,更能直观地展示模型结构,这一点是 2D 可视化不具备的。


例如在何恺明大神的 Mask-RCNN 论文中,有这么一幅图来描述模型结构(很多模型设计类和应用落地类的论文都会有这么一幅图):



TensorSpace 可以让用户使用浏览器方便地构建一个可交互的神经网络 3D 结构更进一步的,用户还可以利用 3D 模型的表意能力特点,结合 Tensorflow.js 在浏览器中进行模型预测(跑已经训练好的模型看输入输出分别是什么),帮助理解模型。


模型结构:黑盒子的真面目是什么?


模型就像是一个盛水的容器,而预训练模型就是给这个容器装满了水,可以用来解决实际问题。搞明白一个模型的输入是什么,输出是什么,如何转化成我们可理解的数据结构格式(比如输出的是一个物体标识框的左上角左下角目标),就可以方便地理解某个模型具体做了什么。


例如,YOLO 到底是如何算出最后的物体识别框的?LeNet 是如何做手写识别的?ACGAN 是怎么一步一步生成一个 0-9 的图片的?这些都可以在提供的 Playground 中自行探索。


如下图所示,模型层间的链接信息可通过直接鼠标悬停具体查看。



层间数据:神经网络的每一层都做了什么?


3D 模型不仅可以直观展示出神经网络的结构特征(哪些层相连,每一层的数据和计算是从哪里来),还能结合 Tensorflow.js 在浏览器中进行模型预测。由于我们已经有了模型结果,所有的层间数据直观可见,如下图所示:



在 TensorSpace 内部,调用 Callback Function 可以方便的拿到每一层的输出数据(未经处理),工程和应用上,了解一个模型的原始输出数据方便工程落地。


怎么建(How)


首先你需要有一个使用常用框架训练好的预训练模型,常见的模型都是只有输入输出两个暴露给用户的接口。TensorSpace 可以全面地展示层间数据,不过需要用户将模型转换成多输出的模型,过程详见以下文档。


模型预处理简介:

http://tensorspace.org/html/docs/preIntro_zh.html


具体流程如下图所示:


品牌、内容合作请点这里: 寻求合作 ››

榜单

今日推荐