提交 e4f4a03d 编写于 作者: M mindspore-ci-bot 提交者: Gitee

!635 Add some description and notices for starting MindInsight

Merge pull request !635 from ougongchang/fix_visual
......@@ -29,17 +29,17 @@
|概念|说明|
|--|--|
|根节点 (root node) 子节点(subnode)|我们根据算子名称中的斜线,对节点划分层级。比如节点A 'Network' 和节点B 'Network/Conv2D',我们称节点A为根节点, 称节点B为节点A的子节点。|
|作用域 (scope)|每个节点都存在一个作用域,子节点的作用域即为父节点的节点名称,比如算子节点 A 'Network/Conv2D',它的作用域为 'Network',即父节点 'Network' 的名称。而根节点的作用域为空字符串。|
|算子节点 (operator node)|节点类型。从保存了计算图的文件中解析出来的原始节点,其对应神经网络代码中一个操作算子,比如Add操作算子。|
|常量节点 (const node)|节点类型。表明算子的常量输入。从保存了计算图的文件中解析出来的常量,并根据其他节点的输入,决定它的作用域,比如常量A,原始名称为 'Const1',由于算子节点B 'Network/Conv2D' 有一个输入是常量A,则复制一个常量A,并将其名称命名为 'Network/Const1',使其作用域与算子节点B一样。|
|参数节点 (parameter node)|节点类型。表明算子的参数输入。|
|命名空间 (name scope)|节点类型,也是作用域类型。以算子节点名字中的斜线(/)进行分割而得到的一种节点类型。比如存在一个名字为 'Network/Conv2D' 的节点 A,根据斜线分割,可以产生一个命名空间节点B,名称为 'Network',在图中展示时,A是B的一个子节点,A的作用域即为B的名称。展开B节点后,才可以看到A节点。|
|聚合节点 (aggregation node)|节点类型,也是作用域类型。在同一个作用域下,当同一种类型的节点过多时,我们会新建一个聚合节点,用来代替这些类型的节点,而这些类型的节点则作为该聚合节点的子节点折叠起来。|
|代理节点 (proxy node)|节点类型。为了优化图中的连线,当节点A与节点B之间的连线过于曲折,我们会在A的旁边新建一个能够代理表示B的节点C,并连线A和C,表明A的数据流向B,而避免了直接连线A和B,导致布局过乱。|
|数据边 (data edge)|连线类型。表明数据的流向,用带箭头的实线表示。比如A->B,表明A有数据流向B。|
|控制边 (control edge)|连线类型。表明算子节点之间执行的依赖关系,用带箭头的虚线表示。比如A-->B,表明A先执行,再执行B。
|独立布局 (independent layout)|在一些连线比较复杂的场景下,我们将某个节点从原来的连线中提出来,避免其他节点与它相连,相对的在其他节点新建代理节点,使节点与代理节点相连,达到简化连线的关系。比如将参数类型的节点进行聚合,简化了参数节点与其他节点的连线关系。|
|根节点、父节点、子节点|我们根据算子名称中的斜线,对节点划分层级。比如节点A 'Network' 和节点B 'Network/Conv2D',我们称节点A为根节点,称节点B为节点A的子节点,同时节点A也是节点B的父节点。|
|作用域|每个节点都存在一个作用域,子节点的作用域即为父节点的节点名称,比如算子节点A 'Network/Conv2D',它的作用域为 'Network',即父节点 'Network' 的名称。而根节点的作用域为空字符串。|
|算子节点|节点类型。从保存了计算图的文件中解析出来的原始节点,其对应神经网络代码中一个操作算子,比如Add操作算子。|
|常量节点|节点类型。表明算子的常量输入。从保存了计算图的文件中解析出来的常量,并根据其他节点的输入,决定它的作用域,比如常量A,原始名称为 'Const1',由于算子节点B 'Network/Conv2D' 有一个输入是常量A,则复制一个常量A,并将其名称命名为 'Network/Const1',使其作用域与算子节点B一样。|
|参数节点|节点类型。表明算子的参数输入。|
|命名空间|节点类型,也是作用域类型。以算子节点名字中的斜线(/)进行分割而得到的一种节点类型。比如存在一个名字为 'Network/Conv2D' 的节点 A,根据斜线分割,可以产生一个命名空间节点B,名称为 'Network',在图中展示时,A是B的一个子节点,A的作用域即为B的名称。展开B节点后,才可以看到A节点。|
|聚合节点|节点类型,也是作用域类型。在同一个作用域下,当同一种类型的节点过多时,我们会新建一个聚合节点,用来代替这些类型的节点,而这些类型的节点则作为该聚合节点的子节点折叠起来。|
|代理节点|节点类型。为了优化图中的连线,当节点A与节点B之间的连线过于曲折,我们会在A的旁边新建一个能够代理表示B的节点C,并连线A和C,表明A的数据流向B,而避免了直接连线A和B,导致布局过乱。|
|数据边|连线类型。表明数据的流向,用带箭头的实线表示。比如A->B,表明A有数据流向B。|
|控制边|连线类型。表明算子节点之间执行的依赖关系,用带箭头的虚线表示。比如A-->B,表明A先执行,再执行B。
|独立布局|在一些连线比较复杂的场景下,我们将某个节点从原来的连线中提出来,避免其他节点与它相连,相对的在其他节点新建代理节点,使节点与代理节点相连,达到简化连线的关系。比如将参数类型的节点进行聚合,简化了参数节点与其他节点的连线关系。|
### 后端设计
......
......@@ -5,10 +5,11 @@
- [Summary Record](#summary-record)
- [Overview](#overview)
- [Operation Process](#operation-process)
- [Preparing the Training Script](#preparing-the-training-script)
- [Preparing The Training Script](#preparing-the-training-script)
- [Method one: Automatically collected through SummaryCollector](#method-one-automatically-collected-through-summarycollector)
- [Method two: Custom collection of network data with summary operators and SummaryCollector](#method-two-custom-collection-of-network-data-with-summary-operators-and-summarycollector)
- [Method three: Custom callback recording data](#method-three-custom-callback-recording-data)
- [Run MindInsight](#run-mindinsight)
- [Notices](#notices)
<!-- /TOC -->
......@@ -25,7 +26,7 @@ Scalars, images, computational graphs, and model hyperparameters during training
- Start MindInsight and specify the summary log file directory using startup parameters. After MindInsight is started, access the visualization page based on the IP address and port number. The default access IP address is `http://127.0.0.1:8080`.
- During the training, when data is written into the summary log file, you can view the data on the web page.
## Preparing the Training Script
## Preparing The Training Script
Currently, MindSpore supports to save scalars, images, computational graph, and model hyperparameters to summary log file and display them on the web page.
......@@ -273,6 +274,49 @@ the `save_graphs` option of `context.set_context` in the training script is set
In the saved files, `ms_output_after_hwopt.pb` is the computational graph after operator fusion, which can be viewed on the web page.
## Run MindInsight
After completing the data collection in the tutorial above, you can start MindInsight to visualize the collected data. When start MindInsight, you need to specify the summary log file directory with the `--summary-base-dir` parameter.
The specified summary log file directory can be the output directory of a training or the parent directory of the output directory of multiple training.
The output directory structure for a training is as follows
```
└─summary_dir
events.out.events.summary.1596869898.hostname_MS
events.out.events.summary.1596869898.hostname_lineage
```
Start command:
```Bash
mindinsight start --summary-base-dir ./summary_dir
```
The output directory structure of multiple training is as follows:
```
└─summary
├─summary_dir1
│ events.out.events.summary.1596869898.hostname_MS
│ events.out.events.summary.1596869898.hostname_lineage
└─summary_dir2
events.out.events.summary.1596869998.hostname_MS
events.out.events.summary.1596869998.hostname_lineage
```
Start command:
```Bash
mindinsight start --summary-base-dir ./summary
```
After successful startup, the visual page can be viewed by visiting the `http://127.0.0.1:8080` address through the browser.
Stop MindInsight command:
```Bash
mindinsight stop
```
For more parameter Settings, see the [MindInsight related commands](https://www.mindspore.cn/tutorial/zh-CN/master/advanced_use/mindinsight_commands.html) page.
## Notices
1. To limit time of listing summaries, MindInsight lists at most 999 summary items.
......@@ -308,3 +352,5 @@ In the saved files, `ms_output_after_hwopt.pb` is the computational graph after
summary_collector = SummaryCollector('./summary_dir2')
model.train(epoch=2, train_dataset, callbacks=[confusion_callback, summary_collector])
```
3. In each Summary log file directory, only one training data should be placed. If a summary log directory contains summary data from multiple training, MindInsight will overlay the summary data from these training when visualizing the data, which may not be consistent with the expected visualizations.
\ No newline at end of file
......@@ -9,6 +9,7 @@
- [方式一:通过SummaryCollector自动收集](#方式一通过summarycollector自动收集)
- [方式二:结合Summary算子和SummaryCollector,自定义收集网络中的数据](#方式二结合summary算子和summarycollector自定义收集网络中的数据)
- [方式三:自定义Callback记录数据](#方式三自定义callback记录数据)
- [运行MindInsight](#运行MindInsight)
- [注意事项](#注意事项)
<!-- /TOC -->
......@@ -275,6 +276,51 @@ model.train(cnn_network, callbacks=[confusion_martrix])
在保存的文件中,`ms_output_after_hwopt.pb` 即为算子融合后的计算图,可以使用可视化页面对其进行查看。
## 运行MindInsight
按照上面教程完成数据收集后,启动MindInsight,即可可视化收集到的数据。启动MindInsight时,
需要通过 `--summary-base-dir` 参数指定summary日志文件目录。
其中指定的summary日志文件目录可以是一次训练的输出目录,也可以是多次训练输出目录的父目录。
一次训练的输出目录结构如下:
```
└─summary_dir
events.out.events.summary.1596869898.hostname_MS
events.out.events.summary.1596869898.hostname_lineage
```
启动命令:
```Bash
mindinsight start --summary-base-dir ./summary_dir
```
多次训练的输出目录结构如下:
```
└─summary
├─summary_dir1
│ events.out.events.summary.1596869898.hostname_MS
│ events.out.events.summary.1596869898.hostname_lineage
└─summary_dir2
events.out.events.summary.1596869998.hostname_MS
events.out.events.summary.1596869998.hostname_lineage
```
启动命令:
```Bash
mindinsight start --summary-base-dir ./summary
```
启动成功后,通过浏览器访问 `http://127.0.0.1:8080` 地址,即可查看可视化页面。
停止MindInsight命令:
```Bash
mindinsight stop
```
更多参数设置,请点击查看[MindInsight相关命令](https://www.mindspore.cn/tutorial/zh-CN/master/advanced_use/mindinsight_commands.html)页面。
## 注意事项
......@@ -311,4 +357,6 @@ model.train(cnn_network, callbacks=[confusion_martrix])
confusion_callback = ConfusionMatrixCallback('./summary_dir1')
summary_collector = SummaryCollector('./summary_dir2')
model.train(epoch=2, train_dataset, callbacks=[confusion_callback, summary_collector])
```
\ No newline at end of file
```
3. 每个summary日志文件目录中,应该只放置一次训练的数据。一个summary日志目录中如果存放了多次训练的summary数据,MindInsight在可视化数据时会将这些训练的summary数据进行叠加展示,可能会与预期可视化效果不相符。
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册