pytorch十二:pytorch可视化工具visdom

visdom简介

visdom是Facebook专门为pytorch开发的一款可视化工具。

在anaconda prompt中输入pip install visdom进行安装。安装完成后,需通过python -m visdom.server命令启动visdom服务。visdom服务是一个Web Server服务,默认绑定8097端口,可打开浏览器输入https://localhost8097进入visdom界面(最好是谷歌浏览器)。

visdom中有以下两个重要概念:

  • env:环境。不同环境的可视化结果相互隔离,互不影响,在使用时如果不指定env,默认使用main。
  • pane:窗格。窗格相当于一个新的窗口,可用于可视化图像、数值或打印文本等,其可以拖动、缩放、保存和关闭。

visdom可对多种数据进行可视化,包括数值、图像、文本,甚至是视频, 支持pytorch的tensor和numpy的ndarray两种数据结构,但不支持python的int、float等类型

visdom可视化

import torch as t
import visdom

#新建一个客户端
#指定env='test1',默认端口是8097,host是‘localhost’
vis = visdom.Visdom(env='test1')

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

>>'sinx'

 vis作为一个客户端对象,可以使用如下常见的画图函数。

  • line:类似于matlab中的plot操作,用于记录某些变量的变化,例如损失、准确率等
  • image:可视化图片,可以是输入的图片,也可以是GAN生成的图片,还可以是卷积核的信息
  • text:用于记录日志等文字信息,支持HTML语法标准
  • histgram:可视化分布,主要是查看数据、参数的分布
  • scatter:绘制散点图
  • bar:绘制柱状图
  • pie:绘制饼状图

visdom函数中常用到的参数:

  • win:用于指定窗格pane的名字,如果不指定,系统会自动分配一个新的pane。如果两次操作的win名字一样,新的窗格将覆盖之前的窗格,因此建议每次操作都指定win。
  • opts:可视化配置,接收一个字典,常见的option包括title、xlabel、ylabel、width等,主要用于设置pane的显示格式

 

update属性

 之前提到过如果窗格pane的名字win每次命名一样的话,每次操作都会覆盖之前的窗格,可以通过指定属性update=‘append’,在同一个窗格上继续显示。 

vis = visdom.Visdom(env='test2')

for i in range(10):
    x = t.Tensor([i])
    y = x
    vis.line(X=x,Y=y,win='polynomial',update='append' if i>0 else None)

x = t.arange(0,9,0.1)
y = (x**2)/9
vis.line(X=x,Y=y,win='polynomial',update='append')

>>'polynomial'

可视化文本

vis.text用于可视化文本,它支持所有的html标签,同时也遵循着html的语法标准。例如大标题<h1>,<br>换行,<b>加粗。

vis = visdom.Visdom(env='test4')
vis.text('''<h1>Hello visdom</h1><br>
                visdom是Facebook专门为<b>pytorch</b>开发的一个可视化工具,
                在内部用了很久,于2017年3月开源。''',win='txt')

>>可视化结果如下图所示

猜你喜欢

转载自blog.csdn.net/qq_24946843/article/details/89458088