热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Visdom:Python可视化神器

Visdom:可视化神器项目地址:visdom文章目录Visdom:可视化神器visdom实质visdom核心概念env:

Visdom:可视化神器

项目地址:visdom


文章目录

  • Visdom:可视化神器
      • visdom实质
      • visdom核心概念
        • env:环境
        • pane:窗格
      • 创建Visdom环境
      • 常用API
        • plot.scatter
        • plot.line
        • plot.stem
        • plot.heatmap
        • plot.bar
        • plot.histogram
        • plot.boxplot
        • plot.surf
        • plot.contour
        • plot.quiver
        • plot.image
        • plot.video
        • plot.svg
        • plot.text
        • plot.mesh


visdom实质

visdom服务是一个 Web Server 服务,客户端与服务器端通过tornado进行非阻塞交互,可视化操作不会阻塞当前程序,网络异常也不会导致程序退出。

由于使用 PyTorch 框架的时候,很多时候要用到命令行解析器,导致一些图的显示不能使用matplotlib,所以没办法只能用 Visdom 来显示,比如我的这个博客里的项目:增加可视化+代码注释 of GitHub项目:Graph Convolutional Networks in PyTorch。




visdom核心概念


env:环境

看作一个大容器。

可以使用envs对可视化空间进行分区。默认地,每个用户都会有一个叫做main的envs。可以通过编程或UI创建新的envs。envs的状态是长期保存的。不同环境的可视化结果相互隔离,互不影响。在使用时如果不指定env,默认使用main。

可以通过 url: http://localhost.com:8097/env/main 访问特定的env。如果服务器是被托管的,那么可以将此url分享给其他人,那么其他人也会看到您的可视化结果。



img




pane:窗格

就是用于绘图的小窗口,在代码中叫 window

UI刚开始是个白板,可以用图像,图片,文本填充它。这些填充的数据出现在 Panes 中,您可以这些 Panes 进行 拖放,删除,调整大小和销毁操作。Panes 是保存在 envs 中的, envs 的状态存储在会话之间,可以下载Panes中的内容–包括您在svg中的绘图。

而且可以使用浏览器的放大缩小功能来调整UI的大小。




创建Visdom环境

import visdom vis = visdom.Visdom(env='test1')



常用API

Visdom支持下列API。由Plotly提供可视化支持。


  • vis.scatter : 2D 或 3D 散点图

  • vis.line : 线图

  • vis.stem : 茎叶图

  • vis.heatmap : 热力图

  • vis.bar : 条形图

  • vis.histogram: 直方图

  • vis.boxplot : 箱型图

  • vis.surf : 表面图

  • vis.contour : 轮廓图

  • vis.quiver : 绘出二维矢量场

  • vis.image : 图片

  • vis.text : 文本

  • vis.mesh : 网格图

  • vis.save : 序列化状态




plot.scatter

这个函数是用来画2D3D数据的散点图。它需要输入 N2N^2N2N3N^3N3的 **tensor **或 ndarray X来指定NNN个点的位置。一个可供选择的长度为NNNvector用来保存X中的点对应的标签(1 到 K)。标签可以通过点的颜色反应出来。

scatter()支持下列的选项:


  • options.colormap : 色图(控制图的颜色) (string; default = 'Viridis')
  • options.markersymbol: 标记符号 (string; default = 'dot')
  • options.markersize : 标记大小(number; default = '10')
  • options.markercolor : 每个标记的颜色. (torch.*Tensor; default = nil)
  • ptions.legend : 包含图例名字的table



plot.line

这个函数用来画线图。它需要一个形状为N或者N×M的tensor Y,用来指定 M条线的值(每条线上有N个点)。和一个可供选择的 tensor X 用来指定对应的 x轴的值; X可以是一个长度为N的tensor(这种情况下,M条线共享同一个 x轴),也可以是形状和Y一样的tensor。

The following options are supported:


  • options.fillarea : 填充线下面的区域 (boolean)
  • options.colormap : 色图 (string; default = 'Viridis')
  • options.markers : 显示点标记 (boolean; default = false)
  • options.markersymbol: 标记的形状 (string; default = 'dot')
  • options.markersize : 标记的大小 (number; default = '10')
  • options.legend : 保存图例名字的 table



plot.stem

这个函数用来画茎叶图。它需要一个 形状为N或者N*M的 tensor X 来指定M时间序列中N个点的值。一个可选择的Y,形状为N或者N×M,用Y来指定时间戳,如果Y的形状是N,那么默认M时间序列共享同一个时间戳。

支持以下特定选项:


  • options.colormap: colormap (string; default = 'Viridis')
  • options.legend : table containing legend names



plot.heatmap

这个函数用来画热力图。它输入一个 形状为N×M的 tensor XX指定了热力图中位置的值。

支持下列特定选项:


  • options.colormap : 色图 (string; default = 'Viridis')
  • options.xmin : 小于这个值的会被剪切成这个值(number; default = X:min())
  • options.xmax : 大于这个值的会被剪切成这个值 (number; default = X:max())
  • options.columnnames: 包含x轴标签的table
  • options.rownames : 包含y轴标签的table



plot.bar

这个函数可以画正常的,堆起来的,或分组的的条形图
输入参数:


  • X(tensor):形状 NN×M,指定每个条的高度。如果XM列,那么每行的值可以看作一组或者把他们值堆起来(取决与options.stacked是否为True)。
  • Y(tensor, optional):形状 N,指定对应的x轴的值。

支持以下特定选项:


  • options.columnnames: table containing x-axis labels
  • options.stacked : stack multiple columns in X``options.legend : table containing legend labels



plot.histogram

这个函数用来画指定数据的直方图。他需要输入长度为 N 的 tensor XX保存了构建直方图的值。

支持下面特定选项:


  • options.numbins: bins的个数 (number; default = 30)



plot.boxplot

这个函数用来画箱型图

输入:


  • X(tensor): 形状 NN×M,指定做第m个箱型图的N个值。

支持以下特定选项:


  • options.legend: labels for each of the columns in X



plot.surf

这个函数用来画表面图

输入:


  • X(tensor):形状 N×M,指定表面图上位置的值。

支持以下特定选项:


  • options.colormap: colormap (string; default = 'Viridis')
  • options.xmin : clip minimum value (number; default = X:min())
  • options.xmax : clip maximum value (number; default = X:max())



plot.contour

这个函数用来画轮廓图

输入:


  • X(tensor):形状 N×M,指定了轮廓图中的值

支持以下特定选项:


  • options.colormap: colormap (string; default = 'Viridis')
  • options.xmin : clip minimum value (number; default = X:min())
  • options.xmax : clip maximum value (number; default = X:max())



plot.quiver

这个函数用来画二维矢量场图

输入:


  • X(tensor): 形状 N*M
  • Y(tensor):形状 N*M
  • gridX(tensor, optional):形状 N*M
  • gradY(tensor, optional): 形状 N*M
    XY决定了 箭头的长度和方向。可选的gridXgridY指定了偏移。

支持下列特定选项:


  • options.normalize: 最长肩头的长度 (number)
  • options.arrowheads: 是否现实箭头 (boolean; default = true)



plot.image

这个函数用来画图片
输入:


  • img(tensor): shape(C*H*W)。

支持下面特定选项:


  • options.jpgquality: JPG quality (number 0-100; default = 100)



plot.video

这个函数 播放一个视频
输入: video 的文件名,或者是一个 shape 为L*H*W*Ctensor。这个函数不支持其它特定的功能选项。

注意:使用tensor作为输入的时候,需要安装ffmpeg。 能不能播放video取决你使用的浏览器:浏览器必须要支持Theano codec in an OGG container。(chrome可以用)。




plot.svg

此函数绘制一个SVG对象。输入是一个SVG字符串或 一个SVG文件的名称。该功能不支持任何特定的options




plot.text

此函数可在文本框中打印文本。输入输入一个text字符串。目前不支持特定的options




plot.mesh

此函数画出一个网格图

输入:


  • X(tensor): shape(N*2N*3) 定义N个顶点
  • Y(tensor, optional):shape(M*2M×3) 定义多边形

支持下列特定选项:


  • options.color: color (string)
  • options.opacity: 多边形的不透明性 (number between 0 and 1)


Reference:


  1. 使用 Visdom 在 PyTorch 中进行可视化
  2. Pytorch求索(2): Pytorch使用visdom进行可视化
  3. PyTorch 可视化工具 Visdom 介绍

推荐阅读
author-avatar
佩弦_秦子轩_188
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有