Visdom 快速上手指南:5 分钟搭建实时可视化仪表盘并绘制第一张图
数据可视化前端【免费下载链接】visdomTool for real-time visualization, monitoring and collaborative analysis of AI/ML experiments and live data. Supports Python, PyTorch/Torch, NumPy, TensorFlow/Keras https://visdom.dev项目地址https://gitcode.com/gh_mirrors/vi/visdom点击查看免费下载本指南基于官方 Quick Start 文档带你从零开始安装 Visdom、启动本地可视化服务器、在浏览器中打开仪表盘并用 Python 客户端一次性创建文本、图像、折线图、散点图和柱状图五种窗口。读完你将掌握 Visdom 客户端—服务器工作模型、win/env/opts三大核心概念以及用updateappend对训练曲线进行实时流式更新的实战能力。1. 安装 VisdomVisdom 的 Python 客户端与 Web 客户端都随 Python 服务器一同发布因此只需一条 pip 命令即可完成全部安装pip install visdom# 验证安装是否成功 python -c import visdom; print(visdom.__version__)安装前提以当前仓库源码为准虽然 installation.md 中标注了 Python 3.6 的历史要求但当前仓库的 客户端入口 已明确断言sys.version_info (3, 12)直接抛出RuntimeError(Visdom requires Python 3.12 or newer.)因此在最新版本上请确保使用Python 3.12 或更新版本并搭配现代浏览器Chrome、Firefox、Safari、Edge使用。其他安装方式可参考 详细安装文档支持从源码安装pip install -e .开发模式、在虚拟环境中安装避免依赖冲突若需要把 Plotly 图形直接保存为 PNG/SVG 文件而非通过浏览器下载按钮可额外安装pip install plotly kaleido。2. 启动服务器在命令行中直接运行visdomvisdom命令等价于python -m visdom.server见 usage.md其底层入口是 run_server.py 中的main()先解析命令行参数再调用start_server()构建 Tornado 应用并启动asyncio事件循环。启动成功后你会看到类似输出Checking for scripts. Its Alive! INFO:root:Application Started You can navigate to http://localhost:8097其中 Application Started 与 You can navigate to ... 由 run_server.py 的 _serve 打印。默认端口 8097、默认主机 localhost、默认环境存储路径~/.visdom/等常量均定义在 defaults.py。若 8097 端口已被占用服务器会自动尝试分配空闲端口并打印实际地址。小贴士建议在screen或tmux中启动服务器这样训练脚本可以持续运行。远程访问共享机器时建议配合-enable_login与-bind_local参数开启认证并限制仅本机可访问仅靠 SSH 隧道并不能提供认证保护。常用的服务器启动参数以下参数由 run_server.py 的命令行解析 支持可组合使用参数默认值说明-port8097服务器监听端口1–65535端口 0 被浏览器视为不安全端口而排除-hostnamelocalhost服务器对外显示的主机名-base_url/服务器基础路径需以/开头且不以/结尾-env_path~/.visdom/序列化会话环境数据的持久化路径-logging_levelINFO日志级别支持级别名或整数如 20-readonly关闭以只读模式启动-enable_login关闭启动认证交互式输入用户名密码或使用VISDOM_USERNAME/VISDOM_PASSWORD环境变量-bind_local关闭仅允许从 localhost 访问-save_interval30环境自动落盘的间隔秒数0 表示关闭定时保存-save_threshold50环境更新达到该次数时提前保存避免忙碌环境长时间未落盘-ssl_certfile/-ssl_keyfile无证书与私钥文件路径必须成对提供以启用 HTTPS-use_frontend_client_polling关闭前端改用轮询而非 WebSocket 通信3. 打开仪表盘浏览器访问http://localhost:8097即可看到一个空白的 Visdom 仪表盘默认main环境。仪表盘上的窗口支持拖拽、缩放、下载内容等交互操作UI 顶部的环境选择器可以切换不同的环境空间详见 Views Filters 相关概念说明。4. 创建你的第一个可视化打开一个 Python Shell 或脚本运行以下代码原样可复制运行import visdom import numpy as np vis visdom.Visdom() # 检查服务器是否已连接 assert vis.check_connection(timeout_seconds3), \ Visdom server is not running at http://localhost:8097 # 1. 显示一段文本 vis.text(h2Hello Visdom!/h2pYour first visualization./p, winhello, optsdict(titleWelcome)) # 2. 显示一张随机图像 vis.image(np.random.rand(3, 256, 256), winrandom_img, optsdict(titleRandom Image)) # 3. 绘制正弦波折线 x np.linspace(0, 4 * np.pi, 200) vis.line(Ynp.sin(x), Xx, winsine, optsdict(titleSine Wave, xlabelx, ylabelsin(x))) # 4. 创建散点图 vis.scatter( Xnp.random.rand(100, 2), Y(np.random.rand(100) 0.5).astype(int) 1, winscatter, optsdict(titleRandom Scatter, legend[Class A, Class B], markersize8), ) # 5. 绘制柱状图 vis.bar( Xnp.random.rand(5), winbar, optsdict(titleBar Chart, rownames[Mon, Tue, Wed, Thu, Fri]), )切回浏览器你会看到五个包含可视化的窗口。代码背后的工作机制从源码看visdom.Visdom()构造函数py/visdom/init.py 的 Visdom.init在初始化时会自动向服务器发送一个env/请求以注册当前环境并默认建立一个 WebSocket 反向通道use_incoming_socketTrue可改为轮询use_pollingTrue用于接收服务器事件、注册事件回调。check_connection(timeout_seconds3)实现见此处会在超时时间内反复检测win_exists()与 socket 状态返回布尔值确认连通性。每个绘图调用如text、image、line、scatter、bar最终都通过_send()py/visdom/init.py#L1184-L1266把 JSON 消息 POST 到 Tornado 服务器的events端点当win为None时服务器会自动生成一个随机窗口名window_id这就是win窗口标识的来历。三个核心概念win、env 与 optswin窗口的唯一标识。传入相同的win会复用已有窗口覆盖或追加数据不传则自动生成随机名。env环境即独立的工作区。客户端默认连接到main环境也可以通过envexperiment_1在单次调用中指定或直接在构造时传入vis visdom.Visdom(envexperiment_1)。环境之间数据互相隔离可通过http://localhost:8097/env/experiment_1直达某个环境。opts绘图选项字典。所有绘图调用共通的选项包括title标题、xlabel/ylabel轴标签、legend图例、width/height、margin*边距等不同图类型还有专属选项例如散点图的markersize、柱状图的rownamesx 轴标签与stacked堆叠模式、layoutopts透传 Plotly 布局。选项在客户端会经过_assert_optspy/visdom/init.py#L410-L488的校验例如markersize必须为正数、opacity必须落在 0–1 之间、jpgquality必须在 0–100 之间。5. 实时更新折线图Visdom 最有价值的特性之一是对已存在窗口的增量更新。updateappend会把新数据点追加到现有折线图末尾实现训练过程中的流式曲线import time win vis.line(Y[0.9], X[1], optsdict(titleTraining Loss, xlabelEpoch, ylabelLoss)) for epoch in range(2, 50): loss 0.9 * np.exp(-0.05 * epoch) np.random.normal(0, 0.02) vis.line(Y[loss], X[epoch], winwin, updateappend) time.sleep(0.1)在浏览器中即可看到损失曲线随着循环逐点增长。updateappend请求走的是独立的update端点区别于创建窗口的events端点且更新请求同样会被记录到日志文件。line的update参数除append外还支持replace整体替换与remove删除窗口等模式。6. 进阶离线记录与远端连接离线模式没有运行服务器时可以把所有 Visdom 调用记录到日志文件稍后在服务器可用时重放import visdom vis visdom.Visdom( offlineTrue, log_to_filenamevisdom_log.json ) # 所有调用都会写入日志文件 vis.text(This is logged offline) vis.line(Y[1, 2, 3], X[1, 2, 3])服务器可用后重放日志恢复状态vis_online visdom.Visdom() vis_online.replay_log(visdom_log.json)从源码看离线模式要求必须指定log_to_filename否则直接断言失败且会强制关闭 socket 通道replay_logpy/visdom/init.py#L1782-L1791逐行读取日志并以from_logTrue标志重发每条消息避免重复记录。连接远端服务器vis visdom.Visdom(serverhttp://remote-host, port8097)如果远端服务器启用了认证还需要传入用户名密码vis visdom.Visdom( serverhttp://remote-host, port8097, usernamemyuser, passwordmypass )客户端在带认证时会向服务器 POST 登录凭据建立会话密码在客户端以 SHA-256 哈希传递见 Visdom.init的认证分支对于自签名 HTTPS 证书的服务器可通过ssl_verifyFalse跳过校验。Visdom 构造函数的完整可选参数base_url、proxies、use_polling、session_idle_timeout等均可参考 py/visdom/init.py 的构造函数签名。运行仓库自带 Demo如果已克隆本仓库可以直接运行官方演示脚本体验全部功能python example/demo.py仓库的 example 目录 还提供了 mnist-embeddings、训练过程监控train_example.py以及 Keras、Lightning、sklearn、XGBoost 等多种框架的接入示例使用 Jupyter Notebook 时只需在独立终端启动服务器然后在 notebook 单元里照常调用vis.text(Hello from Jupyter!)即可。接下来可以深入学习Creating Visualizations — 所有可展示的图表类型与媒体Managing Environments — 将工作按环境组织为独立工作区Live Updates Streaming — 从训练循环中流式传输数据Full API Reference — 每个函数与参数的完整说明赞分享数据可视化前端【免费下载链接】visdomTool for real-time visualization, monitoring and collaborative analysis of AI/ML experiments and live data. Supports Python, PyTorch/Torch, NumPy, TensorFlow/Keras https://visdom.dev项目地址https://gitcode.com/gh_mirrors/vi/visdom点击查看免费下载相关推荐5分钟上手Visdom从安装到构建实时数据可视化仪表盘5分钟上手Visdom从安装到构建实时数据可视化仪表盘 Visdom是一款灵活的实时数据可视化工具支持Torch和Numpy能够帮助开发者轻松创建、组织和数据可视化前端3步彻底优化Windows系统AtlasOS开源工具完整指南3步彻底优化Windows系统AtlasOS开源工具完整指南 你是否厌倦了Windows系统的卡顿、隐私泄露和臃肿的后台服务AtlasOS作为一款开源Win操作系统隐私合规5分钟快速上手Sigma.js从零渲染你的第一张图可视化5分钟快速上手Sigma.js从零渲染你的第一张图可视化 Sigma.js 是一款基于 WebGL 的开源 JavaScript 图可视化库专为渲染数千个节数据可视化前端图形学上一篇RePKG解锁Wallpaper Engine资源提取难题的开源解决方案下一篇终极指南如何一键重置JetBrains IDE试用期限制创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考