fb官方的一些demo

一.  show something

1.  vis.image:显示一张图片

viz.image(
    np.random.rand(3, 512, 256),
    opts=dict(title='Random!', caption='How random.'),
)
  • opts.jpgqualityJPG质量(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.jpgqualityJPG质量(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:与每个数据点具有唯一的颜色不同,对于特定标签的所有点共享相同的颜色。

 Pytorch Visdom               Pytorch Visdom

                   可以在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)]
    )
)

View Code