zoukankan      html  css  js  c++  java
  • 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.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:与每个数据点具有唯一的颜色不同,对于特定标签的所有点共享相同的颜色。

                    

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

    效果如下:

    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=['2012', '2013', '2014', '2015', '2016']
        )
    )
    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='2',
        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='4',
        update='insert'
    )
    View Code

    附:通用可选参数:

    • 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:底部边距(以像素为单位)
  • 相关阅读:
    Educational Codeforces Round 20 D. Magazine Ad
    Educational Codeforces Round 20 C. Maximal GCD
    紫书第三章训练2 暴力集
    Educational Codeforces Round 20 B. Distances to Zero
    Educational Codeforces Round 20 A. Maximal Binary Matrix
    紫书第三章训练1 D
    紫书第一章训练1 D -Message Decoding
    HAZU校赛 Problem K: Deadline
    Mutual Training for Wannafly Union #8 D
    紫书第三章训练1 E
  • 原文地址:https://www.cnblogs.com/king-lps/p/8973824.html
Copyright © 2011-2022 走看看