MindInsight计算图可视设计
特性背景
计算图可视的功能,主要协助开发者在下面这些场景中使用。
- 开发者在编写深度学习神经网络的代码时,可以使用计算图的功能查看神经网络中算子的数据流走向,以及模型结构。
- 计算图还可以方便开发者查看指定节点的输入和输出节点,以及所查找的节点的属性信息。
- 开发者在调试网络时,可以通过可视化的计算图,轻易跟踪数据,包括数据维度、类型的变更等。
总体设计
概念设计
后端设计
后端的类图如下,主要分为Graph基类和Node两个类,其中MsGraph是继承了Graph基类,用于解析MindSpore ANF的计算图文件。Node类聚合成一张图,与Graph为聚合关系。
前端设计
数据将通过Web UI进行绘图并展示,前端采用d3-graph-viz 3.x插件进行绘图辅助。
图1:辅助功能
如图1所示,提供选择文件、查询节点、查看节点信息、节点输入输出等辅助功能。
图2:计算图主体展示
计算图中,根据斜线(/)对节点的名称划分层次,并逐层展示,参考图2计算图主体展示。双击一个作用域节点后,将会展示它的子节点。
接口设计
计算图中,主要有文件接口和RESTful API接口,其中文件接口为summary.proto文件,是MindInsight和MindSpore进行数据对接的接口。 RESTful API接口是MindInsight前后端进行数据交互的接口。
文件接口设计
MindSpore与MindInsight之间的数据交互,采用protobuf定义数据格式。 summary.proto文件为总入口,计算图的消息对象定义为 GraphProto。GraphProto的详细定义可以参考anf_ir.proto文件。