大家好,又见面了,我是你们的朋友全栈君。
代码Structure如下:
1、基础
Visdom
提供以下基本的可视化功能:
2、绘制
我们已经封装了几种常见的绘图类型,以便轻松创建基本可视化。这些可视化由Plotly提供支持。
目前支持以下API
:
- vis.scatter:2D或3D散点图
- vis.line:线图
- vis.updateTrace:更新现有的线/散点图
- vis.stem:干地块
- vis.heatmap:热图地块
- vis.bar:条形图
- vis.histogram:直方图
- vis.boxplot:盒子
- vis.surf:表面重复
- vis.contour:等高线图
- vis.quiver:颤抖的情节
- vis.mesh:网格图
3、通用情节
请注意,服务器API
遵守Plotly
约定data
和layout
对象,以便您可以生成自己的任意Plotly
可视化对象:
import visdom
vis = visdom.Visdom()
trace = dict(x=[1, 2, 3], y=[4, 5, 6], mode="markers+lines", type='custom'
marker={'color': 'red', 'symbol': 104, 'size': "10"},
text=["one", "two", "three"], name='1st Trace')
layout = dict(title="First Plot", xaxis={'title': 'x1'}, yaxis={'title': 'x2'})
vis._send({'data': [trace], 'layout': layout, 'win': 'mywin'})
4、其他
- vis.close :通过ID关闭一个窗口
- vis.win_exists :通过id检查一个窗口是否已经存在
- vis.check_connection:检查服务器是否连接
一些函数的具体说明如下:
1. 基础
(1)vis.image
这个函数绘制一个img
。它将 包含图像的CxHxW
张量作为输入img
。
以下opts
是支持的:
opts.jpgquality
:JPG
质量(number0-100
;默认=100
)opts.caption
:图像的标题
(2)vis.images
这个函数绘制一个列表images
。它需要一个输入B x C x H x W
张量或list of images
全部相同的大小。它使大小的图像(B / Nrow,Nrow
)的网格。
以下参数和opts
支持:
nrow
:连续的图像数量padding
:在图像周围填充,四边均匀填充opts.jpgquality
:JPG
质量(number0-100;
默认=100
)opts.caption
:图像的标题
(3)vis.text
这个功能在一个盒子里打印文本。你可以使用它来嵌入任意的HTML
。它需要输入一个text
字符串。opts
目前没有具体的支持。
(4)vis.video
此功能播放视频。它输入视频的文件名videofile
或一个LxCxHxW
尺度的tensor
(在Lua
)或或LxHxWxC
尺度的tensor
包含视频作为输入的所有帧(在Python
)。该功能不支持任何情节特定opts
。
以下opts
是支持的:
opts.fps
:视频的FPS
(integer>0
;默认=25
)
注意:使用tensor输入需要安装并运行ffmpeg。您播放视频的能力可能取决于您使用的浏览器:您的浏览器必须支持OGG容器中的Theano编解码器(Chrome支持此功能)。
(5)vis.svg
这个函数绘制一个SVG对象。它将SVG字符串svgstr或SVG文件的名称作为输入svgfile。该功能不支持任何特定的 opts。
(6)vis.save
这个功能保存envs在visdom服务器上的活动。它需要输入一个列表(在Python中)或表(在lua中)env id被保存。
2. 绘制
关于包装绘图功能的更多细节在下面给出。
绘图函数的确切输入是不一样的,尽管其中大多数输入的张X量比包含数据的张量Y和包含可选数据变量(如标签或时间戳)的(可选的)张量要大。所有的绘图功能都可以作为一个可选项win,用来绘制到一个特定的窗口; 每个绘图函数也返回win它绘制的窗口。还可以指定env 可视化应该添加到的窗口。
(1)vis.scatter
此功能绘制2D或3D散点图。它需要输入一个Nx2或 一个Nx3张量X来指定N散点图中点的位置。一个可选的N张量,Y其中包含离散的标签,范围介于1和K可以指定 – 标签将反映在标记的颜色。以下opts是支持的:
- opts.colormap :colormap(string; default = ‘Viridis’)
- opts.markersymbol:标志符号(string;默认= ‘dot’)
- opts.markersize :标记大小(number;默认= ’10’)
- opts.markercolor:每个标记的颜色。(torch.*Tensor; default = nil)
- opts.legend :table包含图例名称
opts.markercolor是一个整数值的张量。张量可以是大小N或N x 3或K或K x 3。
- 尺寸张量N:每个数据点的单一强度值。0 =黑色,255 =红色
- 尺寸张量N x 3:每个数据点的红色,绿色和蓝色强度。0,0,0 =黑色,255,255,255 =白色
- 尺寸K和张量K x 3:与每个数据点具有唯一的颜色不同,对于特定标签的所有点共享相同的颜色。
(2)vis.line
这个函数绘制一个线条图。它需要输入一个N或NxM张量 Y来指定要绘制的M线(连接N点)的值。它还采用可选的X张量来指定相应的x轴值; X可以是一个N张量(在这种情况下,所有的线将共享相同的x轴值)或具有相同的大小Y。
以下opts是支持的:
- opts.fillarea :填充行(boolean)以下的区域
- opts.colormap :colormap(string; default = ‘Viridis’)
- opts.markers :show markers(boolean; default = false)
- opts.markersymbol:标志符号(string;默认= ‘dot’)
- opts.markersize :标记大小(number;默认= ’10’)
- opts.legend :table包含图例名称
(3)vis.updateTrace
此功能允许更新现存的线或散点图的数据。
用户可以指定name一个现有的轨迹,如果他们想要添加到它的话,还可以指定一个新name的轨迹。默认情况下,如果在首次创建时没有指定图例,那么图例name中的行的索引是。
如果没有name指定,所有的痕迹应该被更新。跟踪更新数据全部NaN被忽略; 这可以用于掩蔽更新。
该append参数确定更新数据是否应附加到或替换现有数据。
没有,opts因为他们被假定为从指定的情节继承。
(4)vis.stem
这个函数绘制一个干图。它需要输入一个N或NxM张量 X来指定时间序列中的N点的值M。包含时间戳的可选N或NxM张量Y也可以被指定; 如果Y是N张量,则M假定所有时间序列具有相同的时间戳。
以下opts是支持的:
- opts.colormap:colormap(string; default = ‘Viridis’)
- opts.legend :table包含图例名称
(5)vis.heatmap
这个函数绘制一个热图。它需要输入NxM张量X来指定热图中每个位置的值。
以下opts是支持的:
- opts.colormap :colormap(string; default = ‘Viridis’)
- opts.xmin :剪辑最小值(number;默认= X:min())
- opts.xmax :剪辑最大值(number;默认= X:max())
- opts.columnnames:table包含x轴标签
- opts.rownames :table包含y轴标签
(6)vis.bar
这个函数绘制一个规则的,堆积的或分组的条形图。它需要输入一个N或NxM张量X来指定每个条的高度。如果X包含M列,则对应于每行的值将被堆叠或分组(取决于如何opts.stacked设置)。除此之外X,还可以指定一个(可选的)N张量Y,其中包含相应的x轴值。
opts目前支持以下特定于图表的功能:
- opts.rownames:table包含x轴标签
- opts.stacked :堆栈中的多个列 X
- opts.legend :table包含图例标签
(7)vis.histogram
该功能绘制指定数据的直方图。它需要输入一个N张量X来指定构建直方图的数据。
opts目前支持以下特定于图表的功能:
- opts.numbins:垃圾箱数量(number;默认= 30)
(8)vis.boxplot
此函数绘制指定数据的箱形图。它需要输入一个N或一个NxM张量X来指定N构造M箱形图的数据值。
opts目前支持以下特定于图表的功能:
- opts.legend:中的每一列的标签 X
(9)vis.surf
这个函数绘制一个曲面图。它需要输入NxM张量X 来指定曲面图中每个位置的值。
以下opts是支持的:
- opts.colormap:colormap(string; default = ‘Viridis’)
- opts.xmin :剪辑最小值(number;默认= X:min())
- opts.xmax :剪辑最大值(number;默认= X:max())
(10)vis.contour
这个函数绘制一个等高线图。它需要输入一个NxM张量X 来指定轮廓图中每个位置的值。
以下opts是支持的:
- opts.colormap:colormap(string; default = ‘Viridis’)
- opts.xmin :剪辑最小值(number;默认= X:min())
- opts.xmax :剪辑最大值(number;默认= X:max())
(11)vis.quiver
此函数绘制,其中的箭头的方向和长度由所确定的颤动情节NxM张量X和Y。两个可选的NxM 张量gridX,gridY可以提供指定箭头的偏移量; 默认情况下,箭头将在常规网格上完成。
以下opts是支持的:
- opts.normalize:最长箭头的长度(number)
- opts.arrowheads:显示箭头(boolean;默认= true)
(12)vis.mesh
此函数从一个Nx2或一个Nx3矩阵中定义的一组顶点绘制一个网格图 X,以及在一个可选Mx2或 Mx3矩阵中定义的多边形Y。
以下opts是支持的:
- opts.color:color(string)
- opts.opacity:多边形不透明度(number介于0和1之间)
3. 定制情节
绘图功能采用可选opts表格作为输入,可用于更改绘图属性(通用或特定于绘图)的属性。所有输入参数都在一个表中指定; 输入参数是基于它们在输入表中具有的键的匹配。
以下opts是通用的,它们对于所有可视化(除了plot.image和plot.text)是相同的:
- opts.title :图标题
- opts.width :图宽度
- opts.height :身高
- opts.showlegend :显示图例(true或false)
- opts.xtype :x轴的类型(’linear’或’log’)
- opts.xlabel :x轴的标签
- opts.xtick :在x轴上显示刻度(boolean)
- opts.xtickmin :先在x轴上打勾(number)
- opts.xtickmax :在x轴上的最后一个勾号(number)
- opts.xtickvals :在x轴(蜱位置table的number多个)
- opts.xticklabels:蜱上x轴(标签table的string多个)
- opts.xtickstep :x轴上的滴答声之间的距离(number)
- opts.ytype :y轴的类型(’linear’或’log’)
- opts.ylabel :y轴的标签
- opts.ytick :在y轴上显示刻度(boolean)
- opts.ytickmin :首先在y轴上打勾(number)
- opts.ytickmax :最后在y轴上打勾(number)
- opts.ytickvals :在y轴的刻度位置(table的number多个)
- opts.yticklabels:蜱上y轴标签(table的string多个)
- opts.ytickstep :Y轴上的刻度之间的距离(number)
- opts.marginleft :左边距(以像素为单位)
- opts.marginright :右边距(以像素为单位)
- opts.margintop :顶部边距(以像素为单位)
- opts.marginbottom:底部边距(以像素为单位)
其他选项是可视化特定的,并在功能的文档中进行了描述。
4. 其他
(1)vis.close
这个函数关闭一个特定的窗口。它需要输入窗口ID win和环境ID eid。使用win如None关闭所有窗口的环境。
(2)vis.win_exists
这个函数返回一个布尔值,表示win服务器上是否存在一个窗口。如果出现错误,则返回无。
可选参数:
- env:搜索窗口的环境。默认是None。
(3)vis.check_connection
这个函数返回一个布尔值,表示服务器是否连接。
以上内容大部分来源在PyTorch中使用Visdom可视化工具 – pytorch中文网
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150126.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...