Pytorch Visdom
fb官方的一些demo
一. show something
1. vis.image:显示一张图片
viz.image(
np.random.rand(3, 512, 256),
opts=dict(title='Random!', caption='How random.'),
)
opts.jpgquality
:JPG
质量(number0-100
;默认=100
)opts.caption
:图像的标题
2. vis.images:显示一组图片
viz.images(
np.random.randn(20, 3, 64, 64),
opts=dict(title='Random images', caption='How random.')
)
输入类型: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:显示一段文本
viz.text('Hello World !)
4. viz.video:显示一段视频
video = np.empty([256, 250, 250, 3], dtype=np.uint8)
for n in range(256):
video[n, :, :, :].fill(n)
viz.video(tensor=video)
二. Draw something
1. vis.scatter :绘制2D或3D散点图
Y = np.random.rand(100)
old_scatter = viz.scatter( # 新开一个scatter窗口
X=np.random.rand(100, 2),
Y=(Y[Y > 0] + 1.5).astype(int),
opts=dict(
legend=['Didnt', 'Update'],
xtickmin=-50,
xtickmax=50,
xtickstep=0.5,
ytickmin=-50,
ytickmax=50,
ytickstep=0.5,
markersymbol='cross-thin-open',
), )
viz.update_window_opts(
win=old_scatter, # 更新窗口
opts=dict(
legend=['Apples', 'Pears'],
xtickmin=0,
xtickmax=1,
xtickstep=0.5,
ytickmin=0,
ytickmax=1,
ytickstep=0.5,
markersymbol='cross-thin-open',
),
)
- 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:与每个数据点具有唯一的颜色不同,对于特定标签的所有点共享相同的颜色。
可以在visdom界面上直接保存png格式
又如右上图:
viz.scatter(
X=np.random.rand(100, 3),
Y=(Y + 1.5).astype(int),
opts=dict(
legend=['Men', 'Women'],
markersize=5,
)
)
定制点类型、强度、颜色、文字:
viz.scatter(
X=np.random.rand(255, 2),
Y=(np.random.randn(255) > 0) + 1,
opts=dict(
markersize=10,
markercolor=np.floor(np.random.random((2, 3)) * 255),
),
) win = viz.scatter(
X=np.random.rand(255, 2),
opts=dict(
markersize=10,
markercolor=np.random.randint(0, 255, (255, 3,)),
),
) # assert that the window exists
assert viz.win_exists(win), 'Created window marked as not existing' # add new trace to scatter plot
viz.scatter(
X=np.random.rand(255),
Y=np.random.rand(255),
win=win,
name='new_trace',
update='new'
) # 2D scatter plot with text labels:
viz.scatter(
X=np.random.rand(10, 2),
opts=dict(
textlabels=['Label %d' % (i + 1) for i in range(10)]
)
)
效果如下:
2. viz.bar: 绘制规则的,堆积的或分组的条形图
viz.bar(X=np.random.rand(20))
viz.bar(
X=np.abs(np.random.rand(5, 3)),
opts=dict(
stacked=True,
legend=['Facebook', 'Google', 'Twitter'],
rownames=['', '', '', '', '']
)
)
viz.bar(
X=np.random.rand(20, 3),
opts=dict(
stacked=False,
legend=['The Netherlands', 'France', 'United States']
)
)
可选参数:
- opts.rownames:table包含x轴标签
- opts.stacked :堆栈中的多个列 X
- opts.legend :table包含图例标签
效果如下:
3 viz.histogram: 绘制直方图
viz.histogram(X=np.random.rand(10000), opts=dict(numbins=20))
可选参数:
- opts.numbins:箱数量(number;默认= 30)
4. viz.heatmap:绘制热图
viz.heatmap(
X=np.outer(np.arange(1, 6), np.arange(1, 11)),
opts=dict(
columnnames=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'],
rownames=['y1', 'y2', 'y3', 'y4', 'y5'],
colormap='Electric',
)
)
可选参数:
- opts.colormap :colormap(string; default = 'Viridis')
- opts.xmin :clip最小值(number;默认= X:min())
- opts.xmax :clip最大值(number;默认= X:max())
- opts.columnnames:table包含x轴标签
- opts.rownames :table包含y轴标签
5. viz.contour:绘制等高线
x = np.tile(np.arange(1, 101), (100, 1))
y = x.transpose()
X = np.exp((((x - 50) ** 2) + ((y - 50) ** 2)) / -(20.0 ** 2))
viz.contour(X=X, opts=dict(colormap='Viridis'))
可选参数:
- opts.colormap:colormap(string; default = 'Viridis')
- opts.xmin :clip最小值(number;默认= X:min())
- opts.xmax :clip最大值(number;默认= X:max())
6. vis.surf :绘制曲面图
viz.surf(X=X, opts=dict(colormap='Hot'))
可选参数:
- opts.colormap:colormap(string; default = 'Viridis')
- opts.xmin :clip最小值(number;默认= X:min())
- opts.xmax :clip最大值(number;默认= X:max())
7. vis.boxplot:绘制箱型图
X = np.random.rand(100, 2)
X[:, 1] += 2
viz.boxplot(
X=X,
opts=dict(legend=['Men', 'Women'])
)
可选参数:
- opts.legend:中的每一列的标签 X
8. vis.stem:绘制杆图
Y = np.linspace(0, 2 * math.pi, 70)
X = np.column_stack((np.sin(Y), np.cos(Y)))
viz.stem(
X=X,
Y=Y,
opts=dict(legend=['Sine', 'Cosine'])
)
可选参数:
- opts.colormap:colormap(string; default = 'Viridis')
- opts.legend :table包含图例名称
直方图至杆图实例:(左至右,上至下)
9. viz.quiver:绘制矢量场
X = np.arange(0, 2.1, .2)
Y = np.arange(0, 2.1, .2)
X = np.broadcast_to(np.expand_dims(X, axis=1), (len(X), len(X)))
Y = np.broadcast_to(np.expand_dims(Y, axis=0), (len(Y), len(Y)))
U = np.multiply(np.cos(X), Y)
V = np.multiply(np.sin(X), Y)
viz.quiver(
X=U,
Y=V,
opts=dict(normalize=0.9),
)
- opts.normalize:最长箭头的长度(number)
- opts.arrowheads:显示箭头(boolean;默认= true)
10. viz.pie:绘制饼图
X = np.asarray([19, 26, 55])
viz.pie(
X=X,
opts=dict(legend=['Residential', 'Non-Residential', 'Utility'])
)
11. viz.mesh:绘制网格图
x = [0, 0, 1, 1, 0, 0, 1, 1]
y = [0, 1, 1, 0, 0, 1, 1, 0]
z = [0, 0, 0, 0, 1, 1, 1, 1]
X = np.c_[x, y, z]
i = [7, 0, 0, 0, 4, 4, 6, 6, 4, 0, 3, 2]
j = [3, 4, 1, 2, 5, 6, 5, 2, 0, 1, 6, 3]
k = [0, 7, 2, 3, 6, 7, 1, 1, 5, 5, 7, 6]
Y = np.c_[i, j, k]
viz.mesh(X=X, Y=Y, opts=dict(opacity=0.5))
可选参数:
- opts.color:color(string)
- opts.opacity:多边形不透明度(number介于0和1之间)
矢量场至网格图实例:(左至右,上至下)
12. vis.line:绘制线条
viz.line(Y=np.random.rand(10), opts=dict(showlegend=True)) Y = np.linspace(-5, 5, 100)
viz.line(
Y=np.column_stack((Y * Y, np.sqrt(Y + 5))),
X=np.column_stack((Y, Y)),
opts=dict(markers=False),
)
可选参数:
- 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包含图例名称
更新可选参数:
# line updates
win = viz.line(
X=np.column_stack((np.arange(0, 10), np.arange(0, 10))),
Y=np.column_stack((np.linspace(5, 10, 10),
np.linspace(5, 10, 10) + 5)),
)
viz.line(
X=np.column_stack((np.arange(10, 20), np.arange(10, 20))),
Y=np.column_stack((np.linspace(5, 10, 10),
np.linspace(5, 10, 10) + 5)),
win=win,
update='append'
)
viz.line(
X=np.arange(21, 30),
Y=np.arange(1, 10),
win=win,
name='',
update='append'
)
viz.line(
X=np.arange(1, 10),
Y=np.arange(11, 20),
win=win,
name='delete this',
update='append'
)
viz.line(
X=np.arange(1, 10),
Y=np.arange(11, 20),
win=win,
name='',
update='insert'
)
附:通用可选参数:
- 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:底部边距(以像素为单位)
Pytorch Visdom的更多相关文章
- pytorch visdom可视化工具学习—1—详细使用-1—基本使用函数
使用教程,参考: https://github.com/facebookresearch/visdom https://www.pytorchtutorial.com/using-visdom-for ...
- pytorch visdom可视化工具学习—1—详细使用-2-plotting绘图
3)plotting绘图 我们已经包装了几种常见的plot类型,以便轻松创建基本的可视化.这些可视化是由Plotly驱动的. Visdom支持下列API.由 Plotly 提供可视化支持. vis.s ...
- Pytorch Visdom可视化工具
2018-12-04 14:05:49 Visdom是Facebook专门为PyTorch开发的一款可视化工具,其开源于2017年3月.Visdom十分轻量级,但却支持非常丰富的功能,能胜任大多数的科 ...
- pytorch visdom可视化工具学习—1—详细使用-3-Generic Plots和Others
4)Generic Plots 注意,服务器API遵循数据和布局对象的规则,这样您就可以生成自己的任意Plotly可视化: # Arbitrary visdom content trace = dic ...
- pytorch visdom可视化工具学习—1—安装和使用
1.安装 安装命令: (deeplearning) userdeMBP:~ user$ pip install visdomCollecting visdom Downloading https:/ ...
- pytorch visdom可视化工具学习—3-命令行操作使用经验
在使用过程中一直以为要在哪个指定的environment下(即参数env)绘制内容,就必须在使用时声明 比如如果不声明,默认的就是在'main'环境下,端口为8097: viz = visdom.Vi ...
- 深度学习框架PyTorch一书的学习-第五章-常用工具模块
https://github.com/chenyuntc/pytorch-book/blob/v1.0/chapter5-常用工具/chapter5.ipynb 希望大家直接到上面的网址去查看代码,下 ...
- (转)Awesome PyTorch List
Awesome-Pytorch-list 2018-08-10 09:25:16 This blog is copied from: https://github.com/Epsilon-Lee/Aw ...
- 【Semantic segmentation Overview】一文概览主要语义分割网络(转)
文章来源:https://www.tinymind.cn/articles/410 本文来自 CSDN 网站,译者蓝三金 图像的语义分割是将输入图像中的每个像素分配一个语义类别,以得到像素化的密集分类 ...
随机推荐
- jquery 实现按回车键登录功能的写法
<script> //登录的逻辑函数 自己写 function submitFuc(){ var loginName= $("#loginName").val(); v ...
- [leetcode-108,109] 将有序数组转换为二叉搜索树
109. 有序链表转换二叉搜索树 Given a singly linked list where elements are sorted in ascending order, convert it ...
- HTTP Method小记
HTTP 0.9 这个版本只有GET方法 HTTP 1.0 这个版本有GET HEAD POST这3个方法 HTTP 1.1 这个版本是当前版本,包含GET HEAD POST OPTIONS PUT ...
- Mac OS X 启用超级用户 sudo -s 获得系统权限 Mac终端命令
为了防止误操作破坏系统,用户状态下时没有权限操作系统重要文件, 所以先要取得root权限:“sudo -s” 详见:https://www.jianshu.com/p/138b98e662ed
- aspx页面控件id上自动加前缀
公司的一个.net项目,使用的传统aspx页面开发,每个控件上自动加了前缀,最初以为是extjs.net自带的功能,后来研究发现,主要是因为内部使用了母版页.<asp:Content ID=&q ...
- CC2541设置中断输入模式
//P0.0 /* SW_6 is at P0.1 */#define HAL_KEY_SW_6_PORT P0#define HAL_KEY_SW_6_BIT BV(0)#define HAL_KE ...
- IDEA 远程调试 Tomcat 和 Debugger
一般来说我们本地环境使用Tomcat,生产环境使用GlassFish. 准备工作 明确远程服务器的 IP 地址,比如:192.168.92.128 关掉服务器防火墙:service iptables ...
- nginx 相关命令
验证配置是否正确: nginx -t 查看Nginx的版本号:nginx -V 启动Nginx:start nginx 快速停止或关闭Nginx:nginx -s stop 正常停止或关闭Nginx: ...
- python随机数random模块
需要 import random x=random.random() 产生 0 到 1 之间的随机浮点数 结果 0.005570080000840916 x=random.randint(1 ...
- Scala思维导图