Caffe可视化之VisualDL

企业动态
Visual DL是由 PaddlePaddle 和 ECharts 合作推出的一款深度学习可视化工具,其能够可视化scalar、参数分布、模型结构、图像等。

 Visual DL是由 PaddlePaddle 和 ECharts 合作推出的一款深度学习可视化工具,其能够可视化scalar、参数分布、模型结构、图像等。底层采用C++编写,上层SDK以python为主,也可以使用C++集成到其它平台。

如果你正在寻求深度学习任务设计的可视化工具,可以考虑Visual DL。类似于Tensorboard的在线可视化,支持更多的平台。VisualDL 兼容 ONNX, 通过与 python SDK的结合,VisualDL可以兼容包括 PaddlePaddle、 Pytorch、 MXNet 等在内的大部分主流DNN平台。而Tensorboard目前仅适用于Tensorflow、Pytorch、MXNet等。

本文介绍其最简单的scalar的用法, 用于展示训练测试的误差趋势。

安装

pip install --upgrade visualdl
库文件core.so及demo等python文件被放在site-package目录下面。

可以不从源码编译,而直接使用pip下载的core.so, 但是需要使用protoc将storage.pb转成C++源码文件,因为在使用sdk.h时会include protobuf生成的头文件。protoc得到的protobuf头文件版本与VisualDL编译所使用的protobuf版本***一致(VisualDL使用的cmake版本号定义在VisualDL/cmake/external/protobuf.cmake中,如果两个库中使用了不同的版本,在运行时会冲突)。
protoc storage.proto --cpp_out .

使用

Python 中记录 Scalar 示例:

import random from visualdl import LogWriter  # 指定输出目录,同步周期 logdir = "./log" logger = LogWriter(logdir, sync_cycle=30)  # 设置此次记录的模式标签: train/test等 with logger.mode("train"):     # 创建名为 'scalars/loss0' 的scalar组件     loss0 = logger.scalar("scalars/loss0")  # 模拟训练过程中的标量数据记录 for step in range(1000):     loss0.add_record(step, random.random())

运行之后会在logdir中生成日志文件,该日志目录中的文件可被VisualDL工具解析,用法与Tensorboard类似。

同功能的C++ SDK使用示例:

#include <cstdlib> #include <string> #include "visualdl/logic/sdk.h"  namespace vs = visualdl; namespace cp = visualdl::components;  int main() {   const std::string dir = "./log";   vs::LogWriter logger(dir, 30);    logger.SetMode("train");   auto tablet = logger.AddTablet("scalars/loss0");    cp::Scalar<float> loss0(tablet);    for (int step = 0; step < 1000; step++) {     float v = (float) std::rand() / RAND_MAX;     loss0.AddRecord(step, v);   }    return 0; }

caffe1-loss曲线

虽然caffe1的大势已去,但做一些遗留的项目代码研究还是要用的。如果上述的示例能够成功运行,那么在caffe1中记录loss scalar是很容易的。

  1. 可以使用caffe的python接口获取loss。
  2. C++中调用VisualDL,如在solver.cpp中记录loss。编译时链接到VisualDL。示例代码在此 frcnn
    由于VisualDL静态链接了特定版本的protobuf,而caffe也需要protobuf,可以修改caffe的编译选项,取消对protobuf的动态链接。

在caffe1中还可以使用VisualDL的image功能,来可视化任何tensor,或模型生成的图片。通过使用VisualDL工具可以大大方便我们的可视化方式,不必再写额外的脚本独立地来做可视化。

查看board面板

visualDL --logdir 
选项:

  • --host 绑定地址,如ipv6本地地址 ::
  • --port 绑定端口
  • --model_pb 指定ONNX可交换模型文件

得到的loss曲线如下:
visualDL-board

原文: http://www.cnblogs.com/makefile/p/visualdl.html © 康行天下
责任编辑:张燕妮 来源: www.cnblogs.com
相关推荐

2018-03-26 20:07:25

深度学习

2020-03-11 14:39:26

数据可视化地图可视化地理信息

2017-10-17 11:58:54

R语言UpSetR可视化

2017-10-14 13:54:26

数据可视化数据信息可视化

2022-08-26 09:15:58

Python可视化plotly

2009-04-21 14:26:41

可视化监控IT管理摩卡

2022-07-13 15:54:14

Matplotlib图表

2017-06-29 11:26:08

Python数据可视化

2015-08-20 10:06:36

可视化

2016-02-02 16:07:32

可视化大数据数据可视化

2022-08-04 13:58:54

SeabornFacetGrid代码

2019-03-05 09:20:47

Vim可视化模式命令

2015-08-20 10:00:45

可视化

2020-09-27 11:15:37

可视化PandasPython

2014-01-17 10:36:39

2011-06-16 15:09:08

2018-06-15 15:50:34

技术

2017-10-25 13:04:10

数据可视化信息可视化数据图表

2017-06-19 08:30:35

大数据数据可视化报表

2018-05-31 08:25:13

误区工具可视化
点赞
收藏

51CTO技术栈公众号