pytorch与visdom可视化工具

visdom

pytorch Visdom可视化,是一个灵活的工具,用于创建,组织和共享实时丰富数据的可视化。支持Torch和Numpy格式。

visdom的安装与初始化

安装直接利用指令在cmd进行安装

pip install visdom

成功之后使用指令python -m visdom.server进行调用visdom
pytorch与visdom可视化工具_第1张图片
然后打开这个网址,visdom是一个web服务,客户端与服务器进行非阻塞式交互。

小例子

下面我通过实例来演示visdom的运行过程。

import visdom
import torch as t
# 新建一个连接客户端
# 指定env = u'test1',默认端口为8097,host是‘localhost'
vis = visdom.Visdom(env=u'test1')

x = t.arange(1, 30, 0.01)
y = t.sin(x)
vis.line(X=x, Y=y, win='sinx', opts={'title': 'y=sin(x)'})

下面逐行分析一下代码

  • vis = visdom.Visdom(env=u’test1’),构造一个客户端。这里的参数其实有很多个,重点介绍一下env。env是环境,不同环境的可视化结果互不影响,如果不指定的话默认为main。例如本文指定的test1。
    pytorch与visdom可视化工具_第2张图片
  • vis作为一个客户端对象,可以使用常见的画图函数,包括:
  • line:类似于matplotlib中的plot函数,记录标量的变化
  • image:可视化图片
  • test:文本信息
  • histgram:可视化分布
  • scatter:绘制散点图
  • bar:柱状图
  • ………

  • vis.line(X=x, Y=y, win=’sinx’, opts={‘title’: ‘y=sin(x)’}),这里的x和y分别是数据。win是指定窗格(pane)的名字(如果说env是申请了整个页面的话,那pane就组成了页面的一部分),如果不指定的话,那就会重新分配一个窗格,如果win的名称一样,第二次操作会覆盖第一次操作,如果想要不覆盖的话需要指定参数updata=’append’;opts:选项,接受一个子弹,里面包括title,xlabel,ylabel等设置pane显示的信息。

下面是关于追加数据不覆盖的例子

# append 追加数据
for ii in range(0, 10):
    # y = x
    x = t.Tensor([ii])
    y = x
    vis.line(X=x, Y=y, win='polynomial', update='append' if ii>0 else None)
# updateTrace 新增一条线
x = t.arange(0, 9, 0.1)
y = (x ** 2) / 9
vis.updateTrace(X=x, Y=y, win='polynomial', name='this is a new Trace')

随机化一个黑白图象

vis.image(t.randn(64, 64).numpy())

输出文本信息,文本的表达形式参考html的形式。

vis.text(u'''

Hello Visdom


Visdom是Facebook专门为PyTorch开发的一个可视化工具, 在内部使用了很久,在2017年3月份开源了它。 Visdom十分轻量级,但是却有十分强大的功能,支持几乎所有的科学运算可视化任务'''
, win='visdom', opts={'title': u'visdom简介' } )

你可能感兴趣的:(pytorch与visdom可视化工具)