前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >详解PyTorch可视化工具visdom(一)

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

作者头像
全栈程序员站长
发布2022-07-21 16:21:24
4860
发布2022-07-21 16:21:24
举报

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

一、介绍

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

二、如何安装及启动

2.1 安装
  • 安装命令
代码语言:javascript
复制
pip install visdom
  • 安装成功的界面如下图所示
在这里插入图片描述
在这里插入图片描述

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

2.2 启动

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

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

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

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

代码语言:javascript
复制
from visdom import Visdom
import numpy as np
import time

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

  • 实例化一个窗口
  • 初始化窗口的信息
  • 更新监听的信息
3.1 监听单一数据
  • 示例:监听train_loss的变化
代码语言:javascript
复制
# 实例化一个窗口
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
代码语言:javascript
复制
# 实例化窗口
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对图像进行可视化

  • 首先,导入相关的包
代码语言:javascript
复制
from visdom import Visdom
import cv2
import numpy as np
import torch
  • 案例
代码语言:javascript
复制
# 读入图像
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.cn/124860.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月4,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、介绍
  • 二、如何安装及启动
    • 2.1 安装
      • 2.2 启动
      • 三、Visdom可视化神经网络训练过程
        • 3.1 监听单一数据
          • 3.2 监听多条数据
          • 四、Visdom可视化图像
          • 参考文献
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档