机器之心整理
参与:吴欣
据百度技术经理祖明的知乎文章介绍,2018 年 1 月 16 日,百度发布开源产品 ECharts(echarts.baidu.com)的最新大版本 4.0,新版本在产品的性能、功能、易用性等各个方面进行了全面提升。此外,百度还一起发布了 ECharts GL 1.0 正式版,ZRender 4.0 全新版本,WebGL 框架 ClayGL、深度学习框架 VisualDL 等数据可视化产品。祖明还提到,随着这些产品的发布,百度正式公布全新升级的数据可视化品牌----「百度数据可视化实验室」。本文对深度学习可视化工具 VisualDL 做了介绍。
VisualDL 项目地址:https://github.com/PaddlePaddle/VisualDL
VisualDL 是一个深度学习可视化工具,可以帮助开发者设计深度学习方面的项目,它目前囊括了标量特征、参数分布、模型结构和图像可视化等特征。该项目的 GitHub 介绍表示这个可视化工具正在快速发展,新的功能也将不断添加到里面。
据祖明介绍,从去年开始,团队和百度 PaddlePaddle 深度合作,打造了一款深度学习可视化平台 VisualDL,也在这次一同发布,希望通过可视化的方法将模型训练过程中的各个参数以及计算的数据流图实时地展现出来,以帮助模型训练者更好的理解、调试、优化模型。用户只需要通过 Visual DL 提供的接口将模型相关的各种参数数据写入日志中,然后 VisualDL 会读取日志中的模型相关数据将其展示出来,这些数据包括模型训练过程中的各种定量的度量、用户传入的或者中间训练过程生成的各种图片、以及神经网络训练过程中的计算数据流图。
目前 VisualDL 提供四个组件,包括计算图、标量、图像和直方图,这和 TensorFlow 中的 TensorBoard 有一些相似。它们都希望追踪神经网络在整个训练过程中的信息,例如迭代的过程中每一层参数是如何变化与分布、损失函数在迭代中的变化与整个计算图的可视化等。以下是 VisualDL 四个组件的简要介绍:
计算图(Graph)
VisualDL 提供的可视化计算图是与 ONNX(Open Neural Network Exchange)相兼容的,通过与 Python SDK 协作,VisualDL 能与最主要的 DNN 框架相匹配,包括 PaddlePaddle、PyTorch 和 MXNet。下图展示了 VisualDL 的计算图可视化:
标量(Scalar)
标量可用来展示训练迭代过程中损失函数的变化趋势。
图像(Image)
图像可用来可视化任何张量或中间生成的图像。
直方图(Histogram)
直方图可用来可视化参数的分布或任何张量的变化趋势等。
VisualDL 的使用
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())
在训练过程生成了一些日志后,我们可以登录控制面板并查看实时的数据可视化效果,登录的方式也和 TensorBoard 类似,只需要在命令窗口中输入以下命令:
visualDL --logdir <some log dir>
当然,我们也能更改登录端口或远程登陆的主机的 IP 地址。读者若需要了解这一部分的具体过程和安装方法等内容,可详细查阅该 GitHub 项目的说明。
祖明知乎文章地址:https://zhuanlan.zhihu.com/p/32984137