所见即所得

目前,大部分深度学习框架都提供了 Python 的用户界面,其训练过程的状态通常以日记的形式被记录下来,这种方式可以观察短期内的训练状态,但是难以从全局把握训练过程中的变化趋势,导致提取信息时受到较多限制。反观 Visual DL,它可以使得深度学习任务变得生动形象,实现可视分析,改变了传统的日记式记录形态,便于用户将训练过程可视化,帮助更好地把控全局。

首先,它的“Scalar”功能支持 Scalar 打点数据展示,可将训练信息以折线图的形式展现出来,方便观察整体趋势,还能在同一个可视化视图中呈现多条折线,方便用户对比分析。

其次,Visual DL 的“Image”功能支持图片展示,用户可轻松查看数据样本的质量,也可以方便地查看训练的中间结果,例如卷积层的输出或者 GAN 生成的图片。

同时,Visual DL 还具有 Histogram 参数分布展示功能,方便用户查看参数矩阵中数值的分布曲线,并随时观察参数数值分布的变化趋势。

最后,Visual DL 中的“Graph”还能帮助用户查看深度神经网络的模型结构。据悉,Graph 支持直接对 ONNX 的模型进行预览,由于 MXNet、Caffe2、Pytorch 和 CNTK 都支持转成 ONNX 的模型,这意味着 Graph 可间接支持不同框架的模型可视化功能,让用户便于排查网络配置的错误,帮助理解网络结构。

Visual DL 除了功能全面以外,还具有易集成、易使用等优势。

它可提供独立的 Python SDK,若用户的训练任务基于 Python,可直接安装 Visual DL 的 WHL 软件包,随后输入到项目中进行使用,使用方式简单便捷。

为了满足用户的不同操作需求,用户在其 Python 代码中可加入 Visual DL 日志记录逻辑,启动 Visual DL 后即可通过浏览器查看日志的可视化结果。

此外,Visual DL 在底层使用 C++ 编写,提供原生的 C++ SDK,用户可将其深入集成到自己 C++ 的项目,以实现更高效的性能。

值得一提的是,Visual DL 现已完全开放,同时支持大部分的深度学习框架。其 SDK 层面可轻松集成到 Python 或者 C++ 项目中,此外, Graph 通过 ONNX 还可直接支持 PaddlePaddle、TensorFlow、MxNet、PyTorch 和 Caffe2 等流行的深度学习框架。对于开发者来说,Visual DL 可以将深度学习任务的训练过程可视化,减少用户的观察比对时间,让整个训练过程更高效。

使用

VisualDL 同时提供了 Python SDK 和 C++ SDK ,我们可以快速地将数据可视化。

以如何用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())

 

在训练过程生成了一些日志后,我们可以登录控制面板并查看实时的数据可视化效果,登陆方式只需要在命令窗口输入以下命令:

visuaIDL --logdir <some log dir>

相关信息

VisualDL 是由百度团队PaddlePaddle & ECharts 团队开发的深度学习可视化工具。

PaddlePaddle是一个易学易用的分布式深度学习平台,提供丰富的算法服务,致力于机器视觉和自然语言理解的研究。

官方网站:http://www.paddlepaddle.org/