• 【工具使用】神经网络训练高效可视乎库visdom | 使用方式 概念全梳理


    我们知道深度学习训练过程中,非常重要的一部分是深度学习的可视乎

    一般主流的是tensorboard

    还有我在一个代码中看到了visdom,感觉非常Nice

    想系统学习并了解一下相关内容

    Visdom 是一个由 Facebook Research 开发的开源可视化工具,主要用于数据可视化,特别适用于深度学习实验中的实时数据监控。它支持多种数据类型,包括数值、图像、文本和视频等,并且与 PyTorch 紧密集成,同时也支持 Torch 和 Numpy 数据结构。

    1 基本概念

    1. Panes(窗格):Visdom 的 UI 界面以窗格的形式展示数据。用户可以通过编程或 UI 界面将数据发送到后端,并生成对应的窗格。窗格可以进行拖放、删除等操作。

    2. Environments(环境):环境用于对可视化空间进行分区。每个用户默认有一个名为 main 的环境,不同环境的可视化结果是相互隔离的。

    3. State(状态):服务器会自动缓存可视化的状态,即使重新加载页面或重启服务器,也能恢复之前的状态。

    一般我们打开一个可视化界面如下所示

    wu6x8-1714114734705)

    2 安装和启动

    • 安装:通过 pip 进行安装,命令为 pip install visdom
    • 启动:使用命令 python -m visdom.server 启动 Visdom 服务器。启动后,可以通过浏览器访问 http://localhost:8097 查看 Visdom 的 Web 界面。

    3 使用方法

    在 PyTorch 或numpy 中使用 Visdom,通常涉及以下步骤:

    3.1 创建 Visdom 对象

    viz = Visdom()选择环境:可以指定环境 env,如 viz = Visdom(env='my_experiment')

    3.2 绘制数据

    使用相应的可视化函数,如 viz.lineviz.scatter,传入数据和配置选项 opts

    可视乎数据的接口函数有

    • vis.scatter:散点图,支持 2D/3D 数据。
    • vis.line:线图,用于展示连续数据的变化趋势。
    • vis.bar:条形图,展示分类数据的统计信息。
    • vis.heatmap:热力图,用于展示矩阵数据。
    • vis.image:图片,可以展示单张或多张图片。
    • vis.text:文本,展示文本信息。
    • vis.video:视频,展示视频文件。
    • vis.matplot:matplotlib 图,支持 matplotlib 绘图。

    Visdom 的 opts 参数允许用户自定义图表的多种属性,如标题、轴标签、图例、颜色等。

    4 代码实例

    以下是使用 Visdom 绘制散点图和线图的简单示例:

    import numpy as np  
    from visdom import Visdom  
      
    # 初始化 Visdom 连接  
    viz = Visdom(env="test1")  
      
    # 绘制散点图
    viz.scatter(X=np.random.rand(255, 2), win="scatter_plot", opts=dict(title="Scatter Plot", markersize=5))
    
    # 绘制折线图
    for i in range(10):
        viz.line(X=[i], Y=[i*2], win="line_plot",opts=dict(title="Line Plot", markersize=5), update='append')
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    注意参数中都有win 代表的是这个窗口的ID,更新窗口数据的时候就是通过这个ID,而opts里面的title则是显示给用户的,要区分这两个之间的差异哈

    Visdom 支持远程托管,可以将服务器上的可视化结果通过 URL 分享给其他人查看。

  • 相关阅读:
    flutter/dart通过ffi调用rust代码
    npm 清缓存(重新安装node-modules)
    Java并发 - (并发基础)
    Redis的常用数据结构之哈希类型
    DTD之XML的元素&属性定义
    【无标题】
    GPIO口,232串口,USB接口,485接口等接口保护电路
    Python如何判断当前时间是否为夏令时?
    python-列表简介
    CASIO—4500P计算器在公路工程测量中的应用
  • 原文地址:https://blog.csdn.net/Q52099999/article/details/138219220