Skip to content

Commit ed4a4e4

Browse files
Superjomndaming-lu
authored andcommitted
Doc/introduction (#144)
* init quick start * add image * add chinese introduction * clean * clean * add graph * fix path * up * add mdoel_pb
1 parent 9d10fe5 commit ed4a4e4

File tree

4 files changed

+112
-0
lines changed

4 files changed

+112
-0
lines changed

docs/images/histogram_demo.png

262 KB
Loading

docs/images/image_demo.png

940 KB
Loading

docs/images/scalar_demo.png

20.9 KB
Loading

docs/introduction_cn.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
# VisualDL (Visualize the Deep Learning)
2+
3+
## 介绍
4+
VisualDL是一个面向深度学习任务设计的可视化工具,包含了scalar、参数分布、模型结构、图像可视化等功能,项目正处于高速迭代中,新的组件会不断加入。
5+
6+
目前大多数DNN平台均使用Python作为配置语言,VisualDL原生支持python的使用,
7+
通过在模型的Python配置中添加几行,便可以为训练过程提供丰富的可视化支持。
8+
9+
除了Python SDK之外,VisualDL底层采用C++编写,其暴露的C++ SDK也可以集成到其他平台中,
10+
实现原生的性能和定制效果。
11+
12+
## 组件
13+
VisualDL 目前支持4种组件:
14+
15+
- graph
16+
- scalar
17+
- image
18+
- histogram
19+
20+
### graph
21+
兼容 ONNX(Open Neural Network Exchange)[https://github.com/onnx/onnx], 通过与 python SDK的结合,VisualDL可以兼容包括 PaddlePaddle, pytorch, mxnet在内的大部分主流DNN平台。
22+
23+
<p align="center">
24+
<img src="../demo/mxnet/mxnet_graph.gif" width="600" />
25+
</p>
26+
27+
### scalar
28+
可以用于展示训练测试的误差趋势
29+
30+
<p align="center">
31+
<img src="./images/scalar_demo.png" width="600"/>
32+
</p>
33+
34+
### image
35+
可以用于可视化任何tensor,或模型生成的图片
36+
37+
<p align="center">
38+
<img src="./images/image_demo.png" width="600"/>
39+
</p>
40+
41+
### histogram
42+
43+
用于可视化任何tensor中元素分布的变化趋势
44+
45+
<p align="center">
46+
<img src="./images/histogram_demo.png" width="600"/>
47+
</p>
48+
49+
## SDK
50+
VisualDL 同时提供了python SDK 和 C++ SDK 来实现不同方式的使用。
51+
### Python SDK
52+
以最简单的Scalar组件为例,尝试创建一个scalar组件并插入多个时间步的数据:
53+
54+
```python
55+
import random
56+
from visualdl import LogWriter
57+
58+
logdir = "./tmp"
59+
logger = LogWriter(dir, sync_cycle=10)
60+
61+
# mark the components with 'train' label.
62+
with logger.mode("train"):
63+
# create a scalar component called 'scalars/scalar0'
64+
scalar0 = logger.scalar("scalars/scalar0")
65+
66+
67+
# add some records during DL model running, lets start from another block.
68+
with logger.mode("train"):
69+
# add scalars
70+
for step in range(100):
71+
scalar0.add_record(step, random.random())
72+
```
73+
74+
### C++ SDK
75+
上面 Python SDK 中代码完全一致的C++ SDK用法如下
76+
```c++
77+
#include <cstdlib>
78+
#include <string>
79+
#include "visualdl/sdk.h"
80+
81+
namespace vs = visualdl;
82+
namepsace cp = visualdl::components;
83+
84+
int main() {
85+
const std::string dir = "./tmp";
86+
vs::LogWriter logger(dir, 10);
87+
88+
logger.SetMode("train");
89+
auto tablet = logger.NewTablet("scalars/scalar0");
90+
91+
cp::Scalar<float> scalar0(tablet);
92+
93+
for (int step = 0; step < 1000; step++) {
94+
float v = (float)std::rand() / RAND_MAX;
95+
scalar0.AddRecord(step, v);
96+
}
97+
98+
return 0;
99+
}
100+
```
101+
## 启动Board
102+
当训练过程中已经产生了日志数据,就可以启动board进行实时预览可视化信息
103+
104+
```
105+
visualDL --logdir <some log dir>
106+
```
107+
108+
board 还支持一下参数来实现远程的访问:
109+
110+
- `--host` 设定IP
111+
- `--port` 设定端口
112+
- `--model_pb` 指定 ONNX 格式的模型文件

0 commit comments

Comments
 (0)