visdom的安装和使用记录

1、概述

pytorch的可视化工具Visdom,是一个用于创建,组织和共享实时丰富数据的可视化工具。深度学习模型训练过程钟常使用数据visdom进行整个过程的loss记录,acc记录,训练中间热力图记录等,主要支持Torch和Numpy两种类型。
在这里插入图片描述
在这里插入图片描述

2、安装

  • 脚本安装
# 安装visdom
conda activate based_env
pip install visdom
  • 测试是否安装成功
    直接使用默认参数启动visdom,如果显示It’s Alive!,则说明安装成功。
    在这里插入图片描述

  • trouble-shooting
    如果没有安装成功,则可以参考如下文章进行解决visdom安装问题解决

  • 启动visdom的server端
    启动server端有以下参数:
    port:server端运行的端口
    hostname:server端的主机名称
    base_url:server的url(default=/)
    env_path:序列化会话的路径,主要为了用于重新加载
    logging_level:日志级别(默认为INFO,可使用标准文本和数字记录值
    readonly:只读模式启动服务器标志
    enable_login:服务器设置身份验证,需要用户名和密码才能登录
    在这里插入图片描述
    通常是直接启动就行,使用默认设定的参数

    进入你的虚拟环境后
    >> python -m visdom.server 或者 visdom
    >> visdom -h
    

3、使用

  • visdom.image
    该函数主要用于画图,图像需要是CHW的格式,如果图片没有转化成相同形式,则会报错
    函数支持的opts有以下三种:
    jpgquality:图像品质参数,参数为0-100
    caption:图像描述
    store_history:保存所有的图片在一个窗口,可以通过点击窗体下方的滑动条上线翻看滑动,参数值:True/False

    img_path = r'D:\Users\User\Desktop\H4A062HDF01\1.png'
    img = cv2.imread(img_path)
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB).transpose(2, 0, 1)
    vis = visdom.Visdom(env='my_test')
    vis.image(img=img, win='img_demo', opts={
          
          'jpgquality': 100, 'caption': 'one ', 'store_history': True})
    

    在这里插入图片描述

  • visdom.images
    该函数类似于visdom.image,主要用于绘制多张图片,要求输入数据是BCHW的tensor或者具有相同大小的图片list,图片网格大小为(B/行数, 行数)
    可选的参数如下所示
    nrow:每一行图片的数量
    padding:图片四周的padding
    opts有如下可以设定
    jpgquality:图像品质参数,参数为0-100
    caption:图像描述

    vis = visdom.Visdom(env='my_test')
    vis.images(np.random.randn(20,3,60,60),
               nrow=4,
               win='imgs_demo', opts=dict(jpgquality=50,caption='hahahh'))
    

在这里插入图片描述

  • visdom.text
    该函数主要是在一个box中打印文本
vis = visdom.Visdom(env='my_test')
vis.text('{}.{}.{}'.format('hello','world','你好'),win='imgs_demo')

在这里插入图片描述

  • visdom.line
    该函数主要用于绘制线条。输入参数Y是N或者NM大小的tensor,指定了M条线的N个点进行绘制;同时,可以使用X来设定x轴方向的值,X可以是N或者NM的(与Y的大小相一致)大小
    update 可以用于更新已经绘制的图像上的线条,可选参数有:1、append 新数据, 2、replace用新数据代替旧数据,3、remove:使用name进行数据的移除
    opt参数:
    opts.fillarea : fill area below line (boolean)
    opts.markers : show markers (boolean; default = false)
    opts.markersymbol: marker symbol (string; default = ‘dot’)
    opts.markersize : marker size (number; default = ‘10’)
    opts.linecolor : line colors (np.array; default = None)
    opts.dash : line dash type for each line (np.array; default = ‘solid’), one of solid, dash, dashdot or dash, size should match number of lines being drawn
    opts.legend : table containing legend names
    opts.layoutopts : dict of any additional options that the graph backend accepts for a layout. For example layoutopts = {‘plotly’: {‘legend’: {‘x’:0, ‘y’:0}}}.
    opts.traceopts : dict mapping trace names or indices to dicts of additional options that plot.ly accepts for a trace.
    opts.webgl : use WebGL for plotting (boolean; default = false). It is faster if a plot contains too many points. Use sparingly as browsers won’t allow more than a couple of WebGL contexts on a single page.
 vis = visdom.Visdom(env='my_test')
 my_win = vis.line(
     Y=np.array([10, 9, 8, 7, 6]),
     X=np.array([15, 16, 17, 18, 19]),
     opts={
    
    'showlegend': True, 'legend': ['sinx']},
 )
 for i in range(10):
     x = np.random.randint(1, 10, 1)
     y = np.random.randint(100, 200, 1)
     vis.line(X=x, Y=y, win=my_win, update='append')

在这里插入图片描述

  • visdom.bar

–未完待续–

猜你喜欢

转载自blog.csdn.net/caobin_cumt/article/details/127504558