详解PyTorch可视化工具visdom(一)

一、介绍在深度学习领域,模型训练是一个必须的过程,因此常常需要实时监听并可视化一些数据,如损失值loss,正确率acc等。在Tensorflow中,最常使用的工具非Tensorboard莫属;在Pytorch中,也有类似的TensorboardX,但据说其在张量数据加载的效率方面不如visdom。visdom是FaceBook开发的一款可视化工具,其实质是一款在网页端的web服务器,对Pytorch的支持较好。二、如何安装及启动2.1安装安装命令pipinstallvisdom安装

大家好,又见面了,我是你们的朋友全栈君。

一、介绍

在深度学习领域,模型训练是一个必须的过程,因此常常需要实时监听并可视化一些数据,如损失值loss,正确率acc等。在Tensorflow中,最常使用的工具非Tensorboard莫属;在Pytorch中,也有类似的TensorboardX,但据说其在张量数据加载的效率方面不如visdom。visdom是FaceBook开发的一款可视化工具,其实质是一款在网页端的web服务器,对Pytorch的支持较好。

二、如何安装及启动

2.1 安装

  • 安装命令
pip install visdom
  • 安装成功的界面如下图所示
    在这里插入图片描述
    安装成功后,我们需要将visdom启动。

2.2 启动

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

  • vidsom启动命令
python -m visdom.server
  • visdom成功启动后,会返回一个网址,根据显示的网址然后在浏览器里输入:http://localhost:8097 进行登录
    在这里插入图片描述
  • 进入后,会显示visdom的主界面
    在这里插入图片描述

三、Visdom可视化神经网络训练过程

首先,我们需要导入Visdom及所需的其它库

from visdom import Visdom
import numpy as np
import time

Visdom可视化神经网络的训练过程大致分为3步:

  • 实例化一个窗口
  • 初始化窗口的信息
  • 更新监听的信息

3.1 监听单一数据

  • 示例:监听train_loss的变化
# 实例化一个窗口
wind = Visdom()
# 初始化窗口信息
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)
  • 运行结果:此时打开visdom的主界面,会发现窗口train_loss已经显示出来了
    在这里插入图片描述

3.2 监听多条数据

  • 示例:监听train_loss和acc
# 实例化窗口
wind = Visdom()
# 初始化窗口参数
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)
  • 运行结果
    在这里插入图片描述

四、Visdom可视化图像

在处理图像数据时,可以使用visdom对图像进行可视化

  • 首先,导入相关的包
from visdom import Visdom
import cv2
import numpy as np
import torch
  • 案例
# 读入图像
image = cv2.imread('E://桌面.jpg')
# openCV按照BGR读取,而visdom 默认按照RGB显示,因此要进行通道转换
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# visdom类似于pytorch中的卷积模型,接收的数据都要求通道数在前
img = np.transpose(img, (2, 0, 1))
# 将numpy类型转换为torch类型
img = torch.from_numpy(img)
# 可视化图像
viz.image(img, win='pkq')
  • 运行结果
    大家显示的图片各不相同,在这里就不演示了!大家自行演示!

下一篇更新visdom可视化数据集和通过具体的训练过程通过visdom可视化!!!!!

参考文献

http://www.dengb.com/Pythonjc/1354056.html
https://www.it610.com/article/1293748846370824192.htm

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/124860.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 取系统当前时间_java获取当前系统时间方法

    java 取系统当前时间_java获取当前系统时间方法importjava.text.SimpleDateFormat;importjava.util.Calendar;方法一:SimpleDateFormatsdf=newSimpleDateFormat(“yyyy-MM-ddHH:mm:ss”);Stringly_time=sdf.format(newjava.util.Date());System.out.println(…

    2022年10月19日
    3
  • PHP pathinfo() 函数

    PHP pathinfo() 函数

    2021年9月20日
    50
  • PLC编程基础[通俗易懂]

    PLC编程基础[通俗易懂]1.开始一个新的工程按照以下步骤来建立一个新的工程:  (1)选择工具栏中的新建按钮。      (2)定义工程的设备条目。  (3)保存工程当一个新的PLC被添加到工程中的时候,将创建以下空表:1)空的本地符号表;2)全局符号表;3)IO表;4)PLC内存数据;5)PLC设置数据。2.编写一个梯形图程序下面以一个交通灯次序控制为例说明,该交通灯次序是一个标准的英国交通灯次序,顺序如下:只有红灯→…

    2025年10月5日
    2
  • 俄罗斯方块(C语言实现)

    俄罗斯方块(C语言实现)文章目录游戏说明游戏效果展示游戏代码游戏代码详解游戏框架构建隐藏光标光标跳转初始化界面初始化方块信息颜色设置画出方块空格覆盖合法性判断游戏主体逻辑函数判断得分与结束主函数游戏说明俄罗斯方块相信大家都知道,这里就不再介绍什么游戏背景了,我这里对本代码实现的俄罗斯方块作一些说明:按方向键的左右键可实现方块的左右移动。按方向键的下键可实现方块的加速下落。按空格键可实现方块的顺时针旋转。按Esc键可退出游戏。按S键可暂停游戏,暂停游戏后按任意键继续游戏。按R键可重新开始游戏。除此之外,本游戏还

    2022年5月19日
    42
  • Qt编写安防视频监控系统1-通道切换

    Qt编写安防视频监控系统1-通道切换一、前言通道切换在视频监控系统中是最基础的必备功能,一般都会提供1通道+4通道+6通道+8通道+9通道+16通道这几个通道切换,可能做得比较好的还会提供24通道+32通道的,这个可能对电脑的配置就有一定要求了,一般来说,超过9个通道实时显示视频流,基本上会采用子码流来显示,如果都采用主码流,电脑压力非常巨大,CPU占用很高,内存也高,不过现在的电脑配置越来越高,基本上四千多的台式机,配置已经非常…

    2022年7月15日
    22
  • java并发编程实战_java解决并发问题

    java并发编程实战_java解决并发问题Executors  在Java5之后,并发编程引入了一堆新的启动、调度和管理线程的API。Executor框架便是Java5中引入的,其内部使用了线程池机制,它在java.util.cocurrent包下,通过该框架来控制线程的启动、执行和关闭,可以简化并发编程的操作。因此,在Java5之后,通过Executor来启动线程比使用Thread的start方法更好,除了更易管理,效率更好…

    2025年10月24日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号