Visualize Deep Learning
Project description
介绍
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模型的展示,需要进行以下两步操作:
- 在paddle代码中,调用
fluid.io.save_inference_model()
接口保存模型 - 在命令行界面,使用
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 是由 PaddlePaddle 和 ECharts 合作推出的开源项目。我们欢迎所有人使用,提意见以及贡献代码。
更多细节
想了解更多关于VisualDL的使用介绍,请查看文档
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for visualdl-2.0.0a0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 701a0daee5cdae5ba09bc4941e9d066021295524f9d41a7ccb3e1b40a9fa085b |
|
MD5 | e167193384f4f7d7277f9326dfa27a4d |
|
BLAKE2b-256 | f918939d2f6d63a9dfcfed96d8a2e845781a09df112005b8585ba1a4f297c2e8 |