Skip to content

Commit

Permalink
GitHub homepage readme (#163)
Browse files Browse the repository at this point in the history
  • Loading branch information
daming-lu authored Jan 15, 2018
1 parent 888f56d commit e4bade7
Show file tree
Hide file tree
Showing 3 changed files with 149 additions and 129 deletions.
18 changes: 14 additions & 4 deletions docs/introduction_cn.md → README.cn.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
<p align="center">
<img src="https://github.com/daming-lu/large_files/blob/master/visualdl-readme.png" width="60%" />
</p>

# VisualDL (Visualize the Deep Learning)

## 介绍
Expand All @@ -21,29 +25,29 @@ VisualDL 目前支持4种组件:
兼容 ONNX(Open Neural Network Exchange)[https://github.com/onnx/onnx], 通过与 python SDK的结合,VisualDL可以兼容包括 PaddlePaddle, pytorch, mxnet在内的大部分主流DNN平台。

<p align="center">
<img src="../demo/mxnet/mxnet_graph.gif" width="600" />
<img src="https://github.com/daming-lu/large_files/blob/master/graph_demo.gif" width="60%" />
</p>

### scalar
可以用于展示训练测试的误差趋势

<p align="center">
<img src="./images/scalar_demo.png" width="600"/>
<img src="https://github.com/daming-lu/large_files/blob/master/loss_scalar.gif" width="60%"/>
</p>

### image
可以用于可视化任何tensor,或模型生成的图片

<p align="center">
<img src="./images/image_demo.png" width="600"/>
<img src="https://github.com/daming-lu/large_files/blob/master/loss_image.gif" width="60%"/>
</p>

### histogram

用于可视化任何tensor中元素分布的变化趋势

<p align="center">
<img src="./images/histogram_demo.png" width="600"/>
<img src="https://github.com/daming-lu/large_files/blob/master/histogram.gif" width="60%"/>
</p>

## SDK
Expand Down Expand Up @@ -110,3 +114,9 @@ board 还支持一下参数来实现远程的访问:
- `--host` 设定IP
- `--port` 设定端口
- `--model_pb` 指定 ONNX 格式的模型文件
### 贡献
VisualDL 是由 [PaddlePaddle](http://www.paddlepaddle.org/) 和
[ECharts](http://echarts.baidu.com/) 合作推出的开源项目。我们欢迎所有人使用,提意见以及贡献代码。
136 changes: 135 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,131 @@
# VisualDL
<p align="center">
<img src="https://github.com/daming-lu/large_files/blob/master/visualdl-readme.png" width="60%" />
</p>

# VisualDL (Visualize the Deep Learning)

## Introduction
VisualDL is a deep learning visualization tool that can help design deep learning jobs.
It includes features such as scalar, parameter distribution, model structure and image visualization.
Currently it is being developed at a high pace.
New features will be continuously added.

At present, most DNN frameworks use Python as their primary language. VisualDL supports Python by nature.
Users can get plentiful visualization results by simply add a few lines of Python code into their model before training.


Besides Python SDK, VisualDL was writen in C++ on the low level. It also provides C++ SDK that
can be integrated into other platforms.


## Component
VisualDL now provides 4 components:

- graph
- scalar
- image
- histogram

### Graph
Graph is compatible with ONNX(Open Neural Network Exchange)[https://github.com/onnx/onnx],
Cooperated with Python SDK, VisualDL can be compatible with most major DNN frameworks, including
PaddlePaddle, PyTorch and MXNet.

<p align="center">
<img src="https://github.com/daming-lu/large_files/blob/master/graph_demo.gif" width="60%" />
</p>

### Scalar
Scalar can be used to show the trends of error during training.


<p align="center">
<img src="https://github.com/daming-lu/large_files/blob/master/loss_scalar.gif" width="60%"/>
</p>

### Image
Image can be used to visualize any tensor or intermediate generated image.

<p align="center">
<img src="https://github.com/daming-lu/large_files/blob/master/loss_image.gif" width="60%"/>
</p>

### Histogram
Histogram can be used to visualize parameter distribution and trends for any tensor.

<p align="center">
<img src="https://github.com/daming-lu/large_files/blob/master/histogram.gif" width="60%"/>
</p>

## SDK
VisualDL provides both Python SDK and C++ SDK in order to fit more use cases.


### Python SDK
Below is an example of creating a simple Scalar component and inserting data from different timestamps:

```python
import random
from visualdl import LogWriter

logdir = "./tmp"
logger = LogWriter(dir, sync_cycle=10)

# mark the components with 'train' label.
with logger.mode("train"):
# create a scalar component called 'scalars/scalar0'
scalar0 = logger.scalar("scalars/scalar0")


# add some records during DL model running, lets start from another block.
with logger.mode("train"):
# add scalars
for step in range(100):
scalar0.add_record(step, random.random())
```

### C++ SDK
Here is the C++ SDK identical to the Python SDK example above:

```c++
#include <cstdlib>
#include <string>
#include "visualdl/sdk.h"

namespace vs = visualdl;
namepsace cp = visualdl::components;

int main() {
const std::string dir = "./tmp";
vs::LogWriter logger(dir, 10);

logger.SetMode("train");
auto tablet = logger.NewTablet("scalars/scalar0");

cp::Scalar<float> scalar0(tablet);

for (int step = 0; step < 1000; step++) {
float v = (float)std::rand() / RAND_MAX;
scalar0.AddRecord(step, v);
}

return 0;
}
```
## Launch Board
After some logs have been generated during training, users can launch board to see real-time data visualization.
```
visualDL --logdir <some log dir>
```
Board also supports the parameters below for remote access:
- `--host` set IP
- `--port` set port
- `--model_pb` specify ONNX format for model file
### How to install
Expand All @@ -13,3 +140,10 @@ vdl_scratch.py
visualDL --logdir=scratch_log
```
that will start a server locally.
### Contribute
VisualDL is initially created by [PaddlePaddle](http://www.paddlepaddle.org/) and
[ECharts](http://echarts.baidu.com/).
We welcome everyone to use, comment and contribute to Visual DL :)
124 changes: 0 additions & 124 deletions docs/introduction_en.md

This file was deleted.

0 comments on commit e4bade7

Please sign in to comment.