未验证 提交 aaf3980d 编写于 作者: Y YixinKristy 提交者: GitHub

Update README.md

上级 6f8c255a
## 介绍
VisualDL拥有不同种类的组件,能够帮助开发者有效记录和监测训练中的各种指标和数据,为模型训练数据参考,及时发现错误,进而改进神经网络模型的设计
使用组件之前必须先使用LogWriter创建一个记录器,如下:
```python
from visualdl import LogWriter
with LogWriter(logdir="./log") as writer: # VisualDL 使用指南
```
关于记录器的更多参数配置,请参考[VisualDL说明文档](../README.md) ### 概述
VisualDL 是一个面向深度学习任务设计的可视化工具。VisualDL 利用了丰富的图表来展示数据,用户可以更直观、清晰地查看数据的特征与变化趋势,有助于分析数据、及时发现错误,进而改进神经网络模型的设计。
目前,VisualDL 支持 scalar, image, high dimensional 三个组件,项目正处于高速迭代中,敬请期待新组件的加入。
| 组件名称 | 展示图表 | 作用 |
| :----------------------------------------------------------: | :--------: | :----------------------------------------------------------- |
| <a href="#1">[ Scalar](#Scalar -- 折线图组件)</a> | 折线图 | 动态展示损失函数值、准确率等标量数据 |
| <a href="#3">[Image](#Image -- 图片可视化组件)</a> | 图片可视化 | 显示图片,可显示输入图片和处理后的结果,便于查看中间过程的变化 |
| <a href="#6">[High Dimensional](#High Dimensional -- 数据降维组件)</a> | 数据降维 | 将高维数据映射到 2D/3D 空间来可视化嵌入,便于观察不同数据的相关性 |
## Scalar -- 折线图组件 ## Scalar -- 折线图组件
### 介绍 ### 介绍
Scalar 组件的输入数据类型为标量,该组件的作用是画折线图。将损失函数值、准确率等标量数据作为参数传入 scalar 组件,即可画出折线图,便于观察变化趋势。 Scalar 组件的输入数据类型为标量,该组件的作用是将训练参数以折线图形式呈现。将损失函数值、准确率等标量数据作为参数传入 scalar 组件,即可画出折线图,便于观察变化趋势。
### 记录接口 ### 记录接口
...@@ -30,7 +37,7 @@ add_scalar(tag, value, step, walltime=None) ...@@ -30,7 +37,7 @@ add_scalar(tag, value, step, walltime=None)
|step|int|记录的步数| |step|int|记录的步数|
|walltime|int|记录数据的时间戳,默认为当前时间戳| |walltime|int|记录数据的时间戳,默认为当前时间戳|
### demo ### Demo
下面展示了使用 Scalar 组件记录数据的示例,代码见[Scalar组件](../../demo/components/scalar_test.py) 下面展示了使用 Scalar 组件记录数据的示例,代码见[Scalar组件](../../demo/components/scalar_test.py)
```python ```python
from visualdl import LogWriter from visualdl import LogWriter
...@@ -53,7 +60,57 @@ visualdl --logdir ./log --port 8080 ...@@ -53,7 +60,57 @@ visualdl --logdir ./log --port 8080
接着在浏览器打开`http://127.0.0.1:8080`,即可查看以下折线图。 接着在浏览器打开`http://127.0.0.1:8080`,即可查看以下折线图。
<p align="center"> <p align="center">
<img src="../images/scalar_test.png" width="90%"/> <img src="http://visualdl.bj.bcebos.com/images/scalar-globalstatic.png" width="100%"/>
</p>
### 功能操作说明
* 支持数据卡片「最大化」、「还原」、「坐标系转化」(y轴对数坐标)、「下载」折线图
<p align="center">
<img src="http://visualdl.bj.bcebos.com/images/scalar-icon.png" width="55%"/>
</p>
* 数据点Hover展示详细信息
<p align="center">
<img src="http://visualdl.bj.bcebos.com/images/scalar-tooltip.png" width="60%"/>
</p>
* 可搜索卡片标签,展示目标图像
<p align="center">
<img src="http://visualdl.bj.bcebos.com/images/scalar-searchlabel.png" width="90%"/>
</p>
* 可搜索打点数据标签,展示特定数据
<p align="center">
<img src="http://visualdl.bj.bcebos.com/images/scalar-searchstream.png" width="40%"/>
</p>
* X轴有三种衡量尺度
1. Step:迭代次数
2. Walltime:训练绝对时间
3. Relative:训练时长
<p align="center">
<img src="http://visualdl.bj.bcebos.com/images/x-axis.png" width="40%"/>
</p>
* 可调整曲线平滑度,以便更好的展现参数整体的变化趋势
<p align="center">
<img src="http://visualdl.bj.bcebos.com/images/scalar-smooth.png" width="37%"/>
</p> </p>
...@@ -61,7 +118,7 @@ visualdl --logdir ./log --port 8080 ...@@ -61,7 +118,7 @@ visualdl --logdir ./log --port 8080
### 介绍 ### 介绍
Image 组件用于显示图片。在程序运行过程中,将图片数据传入 Image 组件,就可在 VisualDL 的前端网页看到相应图片。 Image 组件用于显示图片数据随训练的变化。在模型训练过程中,将图片数据传入 Image 组件,就可在 VisualDL 的前端网页查看相应图片。
### 记录接口 ### 记录接口
...@@ -78,8 +135,8 @@ add_image(tag, img, step, walltime=None) ...@@ -78,8 +135,8 @@ add_image(tag, img, step, walltime=None)
|step|int|记录的步数| |step|int|记录的步数|
|walltime|int|记录数据的时间戳,默认为当前时间戳| |walltime|int|记录数据的时间戳,默认为当前时间戳|
### demo ### Demo
下面展示了使用 Image 组件记录数据的示例,代码见[Image组件](../../demo/components/image_test.py) 下面展示了使用 Image 组件记录数据的示例,代码文件请[Image组件](../../demo/components/image_test.py)
```python ```python
import numpy as np import numpy as np
from PIL import Image from PIL import Image
...@@ -103,7 +160,7 @@ if __name__ == '__main__': ...@@ -103,7 +160,7 @@ if __name__ == '__main__':
for step in range(6): for step in range(6):
# 添加一个图片数据 # 添加一个图片数据
writer.add_image(tag="doge", writer.add_image(tag="doge",
img=random_crop("../../docs/images/dog.jpg"), img=random_crop("../../docs/images/eye.jpg"),
step=step) step=step)
``` ```
运行上述程序后,在命令行执行 运行上述程序后,在命令行执行
...@@ -111,10 +168,26 @@ if __name__ == '__main__': ...@@ -111,10 +168,26 @@ if __name__ == '__main__':
visualdl --logdir ./log --port 8080 visualdl --logdir ./log --port 8080
``` ```
接着在浏览器打开`http://127.0.0.1:8080`,即可拖动查看记录的不同图片。 在浏览器输入`http://127.0.0.1:8080`,即可查看图片数据。
<p align="center">
<img src="http://visualdl.bj.bcebos.com/images/image-static.png" width="90%"/>
</p>
### 功能操作说明
可搜索图片标签显示对应图片数据
<p align="center">
<img src="http://visualdl.bj.bcebos.com/images/image-search.png" width="90%"/>
</p>
支持滑动Step/迭代次数查看不同迭代次数下的图片数据
<p align="center"> <p align="center">
<img src="../images/dynamic_image.gif" width="60%"/> <img src="http://visualdl.bj.bcebos.com/images/image-eye.gif" width="60%"/>
</p> </p>
...@@ -122,7 +195,7 @@ visualdl --logdir ./log --port 8080 ...@@ -122,7 +195,7 @@ visualdl --logdir ./log --port 8080
### 介绍 ### 介绍
High Dimensional 组件的作用就是将数据映射到 2D/3D 空间来做可视化嵌入,这有利于了解不同数据的相关性。High Dimensional 组件支持以下两种降维算法: High Dimensional 组件将高维数据进行降维展示,用于深入分析高维数据间的关系。目前支持以下两种降维算法:
- PCA : Principle Component Analysis 主成分分析 - PCA : Principle Component Analysis 主成分分析
- t-SNE : t-distributed stochastic neighbor embedding t-分布式随机领域嵌入 - t-SNE : t-distributed stochastic neighbor embedding t-分布式随机领域嵌入
...@@ -142,7 +215,7 @@ add_embeddings(tag, labels, hot_vectors, walltime=None) ...@@ -142,7 +215,7 @@ add_embeddings(tag, labels, hot_vectors, walltime=None)
|hot_vectors|numpy.array or list|与labels一一对应,每个元素可以看作是某个标签的特征| |hot_vectors|numpy.array or list|与labels一一对应,每个元素可以看作是某个标签的特征|
|walltime|int|记录数据的时间戳,默认为当前时间戳| |walltime|int|记录数据的时间戳,默认为当前时间戳|
### demo ### Demo
下面展示了使用 High Dimensional 组件记录数据的示例,代码见[High Dimensional组件](../../demo/components/high_dimensional_test.py) 下面展示了使用 High Dimensional 组件记录数据的示例,代码见[High Dimensional组件](../../demo/components/high_dimensional_test.py)
```python ```python
from visualdl import LogWriter from visualdl import LogWriter
...@@ -172,5 +245,5 @@ visualdl --logdir ./log --port 8080 ...@@ -172,5 +245,5 @@ visualdl --logdir ./log --port 8080
接着在浏览器打开`http://127.0.0.1:8080`,即可查看降维后的可视化数据。 接着在浏览器打开`http://127.0.0.1:8080`,即可查看降维后的可视化数据。
<p align="center"> <p align="center">
<img src="../images/dynamic_high_dimensional.gif" width="80%"/> <img src="http://visualdl.bj.bcebos.com/images/dynamic_high_dimensional.gif" width="80%"/>
</p> </p>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册