Skip to main content

Visualize Deep Learning

Project description

Build Status Documentation Status Release License

介绍

VisualDL是一个面向深度学习任务设计的可视化工具,利用丰富的图表展示数据,用户可以更直观、清晰地查看数据的特征与变化趋势,有助于分析数据、及时发现错误,进而改进神经网络模型的设计。

目前,VisualDL支持Scalar, Image, High Dimensional, Graph 这四个组件,项目正处于高速迭代中,新的组件会不断加入。

目前大多数DNN平台均使用Python作为配置语言,VisualDL原生支持python的使用, 通过在模型的Python配置中添加几行,便可以为训练过程提供丰富的可视化支持。

组件

VisualDL 目前支持以下组件:

  • scalar
  • image
  • high dimensional
  • graph

Scalar

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

Histogram

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

Image

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

Audio

可用于播放输入或生成的音频样本

Graph

VisualDL的graph支持paddle program的展示,同时兼容 ONNX(Open Neural Network Exchange)[https://github.com/onnx/onnx],通过与 python SDK的结合,VisualDL可以兼容包括 PaddlePaddle, pytorch, mxnet在内的大部分主流DNN平台。

要进行paddle模型的展示,需要进行以下两步操作:

  1. 在paddle代码中,调用fluid.io.save_inference_model()接口保存模型
  2. 在命令行界面,使用visualdl --model_pb [paddle_model_dir] 加载paddle模型

High Dimensional

用高维度数据映射在2D/3D来可视化嵌入

快速尝试

请使用下面的命令,来快速测试 VisualDL。

# 安装,建议是在虚拟环境或anaconda下。
pip install --upgrade visualdl

# 运行一个例子,vdl_create_scratch_log 将创建测试日志
vdl_create_scratch_log
visualdl --logdir=scratch_log --port=8080

# 访问 http://127.0.0.1:8080

如果出现TypeError: __init__() got an unexpected keyword argument 'file', 是因为protobuf不是3.5以上,运行pip install --upgrade protobuf就能解决。

如果以上步骤还有出现其他问题,很可能是因为python或pip不同版本或不同位置所致,以下安装方法能解决。

使用 virtualenv 安装

Virtualenv 能创建独立Python环境,也能确保Python和pip的相对位置正确。

在macOS上,安装pip和virtualenv如下:

sudo easy_install pip
pip install --upgrade virtualenv

在Linux上,安装pip和virtualenv如下:

sudo apt-get install python3-pip python3-dev python-virtualenv

然后创建一个虚拟环境:

virtualenv ~/vdl  # for Python2.7
virtualenv -p python3 ~/vdl for Python 3.x

~/vdl 是你的Virtualenv目录, 你也可以选择任一目录。

激活虚拟环境如下:

source ~/vdl/bin/activate

现在再安装 VisualDL 和运行范例:

pip install --upgrade visualdl

# 运行一个例子,vdl_create_scratch_log 将创建测试日志
vdl_create_scratch_log
visualdl --logdir=scratch_log --port=8080

# 访问 http://127.0.0.1:8080

如果在虚拟环境下仍然遇到安装问题,请尝试以下方法。

使用 Anaconda 安装

Anaconda是一个用于科学计算的Python发行版,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。

请根据Anaconda下载网站 的指示去下载和安装Anaconda. 下载Python 3.6版本的command-Line installer.

创建conda环境名字为vdl或任何名字:

conda create -n vdl pip python=2.7 # or python=3.3, etc.

激活conda环境如下:

source activate vdl

现在再安装 VisualDL 和运行范例:

pip install --upgrade visualdl

# 运行一个例子,vdl_create_scratch_log 将创建测试日志
vdl_create_scratch_log
visualdl --logdir=scratch_log --port=8080

# 访问 http://127.0.0.1:8080

如果仍然遇到安装问题,请尝试以下用源代码安装方法。

使用代码安装

#建議是在虚拟环境或anaconda下。
git clone https://github.com/PaddlePaddle/VisualDL.git
cd VisualDL

python setup.py bdist_wheel
pip install --upgrade dist/visualdl-*.whl

如果打包和安装遇到其他问题,不安装只想运行Visual DL可以看这里

SDK

VisualDL 同时提供了python SDK 和 C++ SDK 来实现不同方式的使用。

Python SDK

VisualDL 现在支持 Python 2和 Python 3。

以最简单的Scalar组件为例,尝试创建一个scalar组件并插入多个时间步的数据:

import random
from visualdl import LogWriter

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

# 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.
for step in range(100):
    scalar0.add_record(step, random.random())

C++ SDK

上面 Python SDK 中代码完全一致的C++ SDK用法如下

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

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

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

  logger.SetMode("train");
  auto tablet = logger.AddTablet("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;
}

启动Board

当训练过程中已经产生了日志数据,就可以启动board进行实时预览可视化信息

在命令行中启动

visualdl --logdir <some log dir>

board 还支持一些参数来实现远程的访问:

  • --host 设定IP
  • --port 设定端口
  • -m / --model_pb 指定 ONNX 格式的模型文件

在Python脚本中启动

>>> from visualdl.server import app

>>> app.run(logdir="SOME_LOG_DIR")

app.run()支持命令行启动的所有参数,除此之外,还可以通过指定open_browser=True,自动打开浏览器。

贡献

VisualDL 是由 PaddlePaddleECharts 合作推出的开源项目。我们欢迎所有人使用,提意见以及贡献代码。

更多细节

想了解更多关于VisualDL的使用介绍,请查看文档

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

visualdl-2.0.0a0-py3-none-any.whl (5.9 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page