[Pytorch系列-70]:开发环境 - 可视化工具visdom安装与使用方法

2023-10-31

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122073099


目录

第1章 概述

1.1 概述

1.2 工作原理

第2章 安装与启动

2.1 安装

2.2 启动后台visdom server

2.3 启动前台IE显示

第3章 使用:通过pytorch代码可视化信息

3.1 导入库

3.2 实例化一个Visdom窗口

3.3 通过wind对象可视化图像


第1章 概述

1.1 概述

在深度学习领域,模型训练是一个必须的过程,因此常常需要实时监听并可视化一些数据,如损失值loss,正确率acc等。

在Tensorflow中,最常使用的工具非Tensorboard莫属;

在Pytorch中,也有类似的TensorboardX,但据说其在张量数据加载的效率方面不如visdom。

visdom是FaceBook开发的一款可视化工具,其实质是一款在网页端的web服务器,对Pytorch的支持较好。

github上,很多开源项目,都通过visdom可视化训练结果,甚至是训练过程的,包括图像生成开源项目pytorch-CycleGAN-and-pix2pix ,因此有必要熟悉一下visdom的使用。

1.2 工作原理

 (1)在命令行方式下启动visdom server

(2)启动后台进程:visdom

(3)通过IE打开前台可视化

(4)需要可视化的程序启动创建wind = Visdom() session

(5)通过wind对象提供的方法,visdom server输出可视化图像

第2章 安装与启动

2.1  激活conda环境

conda info -e

conda activate pytorch-gpu-os

2.2 安装

pip install visdom

安装成功的界面如下图所示

 安装成功后,我们需要将visdom启动。

2.3 启动后台visdom server

类似于TensorFlow的TensorBoard,要使用Visdom,就要先在终端开启监听命令

(1)vidsom启动命令

python -m visdom.server

visdom成功启动后,会返回一个visdom server的网址。

2.4 启动前台IE显示

根据显示的网址然后在浏览器里输入:

http://localhost:8097

IE作为Client端,连接visdom server.

进入后,是一个空白的窗口。

第3章 使用:通过pytorch代码可视化信息

3.1 导入库

from visdom import Visdom
import numpy as np
import time
import requests
import os

3.2 实例化一个Visdom窗口

# 实例化一个窗口
wind = Visdom()

3.3 通过wind对象可视化图像

(1)划单条线

# 初始化窗口信息
wind.line( [0.], # Y的第一个点的坐标
          [0.], # X的第一个点的坐标
           win = 'train_loss', # 窗口的名称
           opts = dict(title = 'train_loss') # 图像的标例
         )

# 更新数据
for step in range(10):
    # 随机获取loss,这里只是模拟实现
    loss = np.random.randn() * 0.5 + 2
    wind.line([loss],[step], win = 'train_loss', update = 'append')
    time.sleep(0.5)

(2)显示多条线

# 初始化窗口参数
wind.line([[0.,0.]],[0.], win = 'train',opts = dict(title = 'loss&acc',legend = ['loss','acc']))


# 更新窗口数据
for step in range(10):
    loss = 0.2 * np.random.randn() + 1
    acc =  0.1 * np.random.randn() + 0.5
    wind.line([[loss, acc]],[step],win = 'train',update = 'append')
    time.sleep(0.5)

 (3)显示单张图片文件

# 图片
# 单张图片
wind.image(
     np.random.rand(3, 512, 256),
     opts={
        'title': 'Random',
        'showlegend': True
    }
)

(4)显示一批图片

# 多张图片
wind.images(
    np.random.rand(20, 3, 64, 64),
    opts={
        'title': 'multi-images',
    }
)

(5)显示散点图

# 散点图
Y = np.random.rand(100)
Y = (Y[Y > 0] + 1.5).astype(int),  # 100个标签1和2

old_scatter = wind.scatter(
    X=np.random.rand(100, 2) * 100,
    Y=Y,
    opts={
        'title': 'Scatter',
        'legend': ['A', 'B'],
        'xtickmin': 0,
        'xtickmax': 100,
        'xtickstep': 10,
        'ytickmin': 0,
        'ytickmax': 100,
        'ytickstep': 10,
        'markersymbol': 'cross-thin-open',
        'width': 800,
        'height': 600
    },
)

# time.sleep(5)
# 更新样式
wind.update_window_opts(
    win=old_scatter,
    opts={
        'title': 'New Scatter',
        'legend': ['Apple', 'Banana'],
        'markersymbol': 'dot'
    }
)

(6)显示3D散点图

# 3D散点图
wind.scatter(
    X=np.random.rand(100, 3),
    Y=Y,
    opts={
        'title': '3D Scatter',
        'legend': ['Men', 'Women'],
        'markersize': 5
    }
)

(7)显示柱状图

# 柱状图
wind.bar(X=np.random.rand(20))
wind.bar(
    X=np.abs(np.random.rand(5, 3)),  # 5个列,每列有3部分组成
    opts={
        'stacked': True,
        'legend': ['A', 'B', 'C'],
        'rownames': ['2012', '2013', '2014', '2015', '2016']
    }
)

wind.bar(
    X=np.random.rand(20, 3),
    opts={
        'stacked': False,
        'legend': ['America', 'Britsh', 'China']
    }
)

 (8)显示热力图

# 热力图
wind.heatmap(
    X=np.outer(np.arange(1, 6), np.arange(1, 11)),
    opts={
        'columnnames': ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'],
        'rownames': ['y1', 'y2', 'y3', 'y4', 'y5'],
        'colormap': 'Electric'
    }
)

(9)地表图

# 地表图
x = np.tile(np.arange(1, 101), (100, 1))
y = x.transpose()
X = np.exp((((x - 50) ** 2) + ((y - 50) ** 2)) / -(20.0 ** 2))
wind.contour(X=X, opts=dict(colormap='Viridis'))

(10)物体表面图

# 表面图
wind.surf(X=X, opts={'colormap': 'Hot'})


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122073099

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Pytorch系列-70]:开发环境 - 可视化工具visdom安装与使用方法 的相关文章

随机推荐

  • DOT:视觉SLAM的动态目标物跟踪

    点云PCL免费知识星球 点云论文速读 文章 DOT Dynamic Object Tracking for Visual SLAM 作者 Irene Ballester Alejandro Fontan Javier Civera 翻译 分
  • winServer服务器搭建nginx配置https问题及流程:

    问题 1 配置切记要仔细 每个配置项最后都应以 结尾 报错如下 2022 07 11 12 51 29 emerg 3284 4856 worker processes directive is not allowed here in F
  • PML之平均 、中值 、众数、标准偏差、方差

    NumPy模块为此提供了一种方法 可以计算平均 中值和众数 1 平均值 import numpy as np value 2 4 6 14 34 88 98 17 47 计算平均值 mean np mean value print mean
  • 深度学习模型系列一——多分类模型——Softmax 回归

    Softmax 回归 1 概述 2 Softmax回归模型 3 Softmax函数 4 Softmax回归的决策函数 5 参数估计 5 1 损失函数 5 2 梯度估计 5 2 1 Softmax函数的导数 5 2 2 梯度 6 模型预测与评
  • JavaWeb——动态 web 资源开发

    目录 Servlet 01 系统架构 1 1 系统架构包括什么形式 1 2 C S架构 1 3 B S架构 1 4 C S和B S结构的系统如何选择 1 5 开发一个WEB系统需要哪些技术 1 6 Java EE是什么 02 B S结构的系
  • VScode在开发vue时常用的插件,干就完了

    Auto Rename Tag 自动成对修改标签名 ESLint HTML Snippets Chinese Simplified Language Pack for Visual Studio Code 汉化vscode Live Ser
  • 安装nrm包时控制台报错

    安装nrm包时控制台报错 C Users 11359 AppData Roaming npm node modules nrm cli js 9 const open require open Error ERR REQUIRE ESM r
  • Floating UI 使用经验分享 - Dialog

    上文 Floating UI 使用经验分享 Popover 在本文中 我将分享如何使用 Floating UI 来创建另一种常见的浮动 UI 组件 Dialog 对话框 Dialog 是一个浮动元素 显示需要立即关注的信息 他会出现在页面内
  • 宝塔7.9最新企业版免授权无后门

    宝塔面板大家应该都知道吧 今天带来的是宝塔面板企业版免授权 无需绑定账号版本 用ssh链接上我们的服务器输入下列命令回车 然后过一会会让输入一个东西 输y即可 与正版宝塔安装步骤一致 yum install y wget wget O in
  • mysql干货——数据库字符集和校对规则详解

    一 什么是字符集 字符是多个文字和符号的总称 包括各个国家的文字 标点符号 图形符号 数字等 字符集多个字符的集合 字符集合种类较多 每个字符集包含的字符的个数不同 对于字符集不支持的字符 则以乱码显示 常见的字符集有ASCII字符集 GB
  • 2、matlab 图像分割(1)

    目的 利用图像的坐标点 判断出想要分割出的部分 利用 matlab 语法实现分割 1 基本语法 1 1 定义矩阵 var 1 2 3 4 5 6 定义一个 2 3 的矩阵 该变量会出现在工作区 可以在命令行用变量输出该矩阵 1 2 find
  • Unity协同详解以及与多线程的区别使用

    转载自 http blog csdn net linuxheik article details 45392945 1 什么是协调程序 unity协程是一个能暂停执行 暂停后立即返回 直到中断指令完成后继续执行的函数 它类似一个子线程单独出
  • 深入理解Interpreter模式

    1 Interpreter模式是一个能给人留下深刻印象的模式 The Interpreter pattern describes how to define a grammar for simple languages represent
  • 本地容灾异地备份,本地容灾和异地容灾

    关于容来自灾备份 备份也是容灾的一种方式 我们认为应用级的备份是最传统的 在应用层进行复制 一般成本低廉数据级的容灾 只得是从存储层进行备份 这种备份的机制往往是实时的 适合关键的业务 并且能够做到实时的挂载 相对第一种 毕竟成本高一些 但
  • 用chargpt一分钟,一键生成PPT!

    ChatGPT狂飙160天 世界已经不是之前的样子 新建了人工智能中文站https ai weoknow com 每天给大家更新可用的国内可用chatGPT资源 这是 ChatGPT 从入门到精通 第 13 篇基础教程 有同学留言 问 还有
  • 页面缓存————Expires header(顺便提下ASP.NET常用的VaryByParam实现缓存)

    从事ASP NET开发也有1年多了 这期间发生了许许多多的事情 经过苦难的层层磨练 渐渐对ASP NET这个很多人说 简单易掌握 的东西有了逐步的认识和理解 自己也在慢慢的成长 在这1年多的期间非常感谢franky大哥给我前端上的指导 感觉
  • 贝叶斯分类(这个讲的比较清晰,一看就明白)

    原文地址 http www cnblogs com leoo2sk archive 2010 09 17 naive bayesian classifier html 1 2 分类问题综述 对于分类问题 其实谁都不会陌生 说我们每个人每天都
  • HDF5库的下载

    HDF5是科学计算中最常用的分层式数据存储格式 大部分计算软件都需要它的支持 然而 最近在下载HDF5库的时候 我突然发现 官方的下载链接竟然都指向了AWS 在国庆大背景下我的梯子被战略性封闭 于是全部404 不过这样就难住我了嘛 不可能的
  • oracle导出表结构的几种办法,oracle表结构和数据导出时的一些勾选项说明

    使用pl sql developer导出oracle数据库的表结构和表数据时 有一些勾选项供用户选择 需要用户根据实际情况进行勾选或取消 导出方法如下 一 只导出表结构 1 使用pl sql developer登陆数据库 2 选择Tools
  • [Pytorch系列-70]:开发环境 - 可视化工具visdom安装与使用方法

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122073099 目录 第1章 概述