Visdom 可视化简介
介绍
Visdom
是 facebook 开发的可视化工具,可以灵活的创建、组织、共享多种数据的的可视化结果,支持 Troch
与 Numpy
。
本文介绍 Python3 下的使用,主要参考官方repo。
Visdom有助于对数据进行科学解释,特别适合从不同维度对数据进行展示、监控、分享。基于 web 的 UI 可以方便的对不同类型绘图窗口进行管理、调整,可生成仪表盘实现对数据的实时监控,特别适合于训练过程中的多种指标的监控,例如训练误差、正确率等。
安装
- 直接使用
pip install visdom
进行安装
或者
- 通过官方仓库的源码进行安装
git clone https://github.com/facebookresearch/visdom.git cd visdom pip install -e .
基本概念
Visdom 的使用过程,需要掌握几个重要的概念
Windows 窗口 (win)
Visdom 的界面中,我们绘制的各种图都存在与每一个 window 中,每个 win 有名称,可以通过缩放、移动进行适当排列。
Environments 环境 (env)
- Env 用来组织 win,默认 env 为 main。
- 可以使用 url 来访问特定的 env,例如
http://localhost.com:8097/env/main
,如果部署在服务器上,他人也能实时的看到你的结果。 - 在界面中可以点选,切换不同 env。
- 注意,当同时勾选多个 env 时,将进入对比模式,也就是将不同 env 中同名的 plot 筛选出来,并将它们放在一个 plot 中进行对比,同时生成 lengend 加以区分。
State 状态
- 当创建了绘图之后,服务器将保存当前绘图状态,这样当刷新页面后,仍将恢复之前状态。
- Save: 可以点击
save
手动保存当前状态 - Fork: 当输入新的 env 名称时,可以基于当前状态产生新的分差(fork),在进行对比时这点非常有用。
Filter 过滤
- 可以使用 filter 输入框动态的筛选 win
- 可以使用正则表达式 (regular expression)
Views 视图
通过视图可以有效组织绘图
- re-packing: 重组视图,以合适尺寸显示 win
- reload: 从新加载视图
基本用法
启动服务
使用前首先启动服务器,只需在命令行输入
visdom
在浏览器中访问 http://localhost:8097
,即可打开 visdom 界面。
visdom
命令等价于python -m visdom.server
visdom
命令可选一些参数,如端口号等,可参考API。如无特殊需求,使用默认即可。
示例
启动服务之后,变可以使用 python 程序在 visdom 界面中绘图。如下例
- 例子
import visdom import numpy as np vis = visdom.Visdom() vis.text('Hello, world!') vis.image(np.ones((3, 10, 10)))
- 官方仓库中带有一个完整的示例,展示多种绘图,可见 demo.py
基本绘图函数
Visdom 提供了许多绘图函数,详细说明可参阅官方API,这里只介绍几个典型操作。
未完待续…