广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Pytorch可视化之Visdom使用实例
  • 787
分享到

Pytorch可视化之Visdom使用实例

2024-04-02 19:04:59 787人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录一、Visdom简介二、安装和运行三、可视化例子1、输出Hello World!2、显示图像3、绘制散点图4、绘制线条4.1 绘制一条直线4.2 绘制两条直线4.3 绘制正弦曲线

一、Visdom简介

Visdom是由Facebook公司开发的一个进行数据可视化WEB应用程序,支持Torch、Numpy、PyTorch这3个库的创建、管理和分享实时的数据可视化结果。

二、安装和运行

可直接使用pip进行安装,命令如下:


pip install visdom

安装过程如下:

安装完成后,运行下面的代码启动visdom服务器(运行需要时间,需要稍等一下;下图中的报错ERROR我没有管,不影响正常运行):


python -m visdom.server

按照提示,在浏览器中输入Http://localhost:8097就可以访问visdom了。初始界面如下图所示,是一个没有任何视窗的main环境。

三、可视化例子

1、输出Hello World!

打开开发工具(我用的是PyCharm2020.3),新建程序文件,输入以下代码:


import visdom
 
vis = visdom.Visdom()
vis.text("Hello World!")

点击运行,返回查看浏览器。这时浏览器会出现一个视窗,内容为“Hello World!”。

 拖拽视窗右下角箭头处(如图绿框处)可对视窗大小进行缩放,拖动视窗顶部横条(如图红框处)可以移动视窗。

2、显示图像

visdom可以直接显示Tensor格式的图像数据。

打开开发工具,新建程序文件,输入以下代码:


import visdom
from PIL import Image
import torchvision.transfORMs.functional as TF
 
demo_pic = Image.open("1.jpg")
img_tensor = TF.to_tensor(demo_pic)
vis = visdom.Visdom()
vis.image(img_tensor)

结果如下图所示:

 可以用images()函数同时显示多张图片,代码如下:


import visdom
from PIL import Image
import torchvision.transforms.functional as TF
import torch
 
demo_pic = Image.open("1.jpg")
img_tensor = TF.to_tensor(demo_pic)
img_tensors = torch.Tensor([img_tensor.numpy(), img_tensor.numpy()])
vis = visdom.Visdom()
vis.images(img_tensors)

结果如下:

3、绘制散点图

使用scatter()函数可以绘制二维或者三维的散点图。代码如下:


import visdom
import numpy as np
import torch
 
Y = np.random.rand(100)
vis = visdom.Visdom()
# vis = visdom.Visdom(env='my_wind')#设置环境窗口的名称是'my_wind',如果不设置默认为main
# 2—D
twoD_scatter = vis.scatter(X=torch.rand(100, 2),
                          Y=(Y + 1.5).astype(int), # 转换成100个1或2的整数
                          opts=dict(
                              legend=['Apples', 'Pears'], # 图例名称
                              xtickmin=-1, # 设置x坐标轴下限
                              xtickmax=2.5, # 设置x坐标轴上限
                              xtickstep=0.5, # 设置x坐标轴间隔
                              ytickmin=-1,
                              ytickmax=2.5,
                              ytickstep=0.5,
                              markersymbol='dot' # 设置数据显示样式
                          ),
                          )
# 3-D
# 3D scatterplot with custom labels and ranges
threeD_scatter = vis.scatter(X=np.random.rand(100, 3),
                             Y=(Y + 1.5).astype(int),
                             opts=dict(
                                 legend=['Men', 'Women'],
                                 markersize=5, # 标记大小
                                 xtickmin=0,
                                 xtickmax=2,
                                 xlabel='Arbitrary', # 标签
                                 xtickvals=[0, 0.75, 1.6, 2], # 设置坐标轴显示值
                                 ytickmin=0,
                                 ytickmax=2,
                                 ytickstep=0.5,
                                 ztickmin=0,
                                 ztickmax=1,
                                 ztickstep=0.5,
                             )
                             )

运行结果如下图所示:

  如果想要通过程序实现散点图参数的更新,可以使用update_window_opts()函数,代码如下:


vis.update_window_opts(
    win=twoD_scatter,
    opts=dict(
        legend=['Apples', 'Pears'],
        xtickmin=0,
        xtickmax=1,
        xtickstep=0.5,
        ytickmin=0,
        ytickmax=1,
        ytickstep=0.5,
        markersymbol='dot'
    )
)

update_window_opts()传入两个参数,第一个是视窗的实例,例子中是twoD_scatter;第二个是更新的参数字典opts。

更新后结果如下图所示:

4、绘制线条

4.1 绘制一条直线

代码如下:


import visdom
import numpy as np
vis = visdom.Visdom(env='my_windows')  # 设置环境窗口的名称,如果不设置名称就默认为main
# 绘制一条直线
x = list(range(10))
y = list(range(10))
# 使用line函数绘制直线 并选择显示坐标轴
vis.line(X=np.array(x), Y=np.array(y), opts=dict(showlegend=True))

结果如图所示:

4.2 绘制两条直线

代码如下:


# 绘制两条直线
import visdom
import numpy as np
vis = visdom.Visdom(env='my_windows')
x = list(range(10))
y = list(range(10))
z = list(range(1,11))
vis.line(X=np.array(x), Y=np.column_stack((np.array(y), np.array(z))),  opts=dict(showlegend=True))

结果如图所示:

4.3 绘制正弦曲线

代码如下:


import visdom
import torch
vis = visdom.Visdom(env='sin')
x = torch.arange(0, 100, 0.1)
y = torch.sin(x)
vis.line(X=x,Y=y,win='sin(x)',opts=dict(showlegend=True))

结果如图所示:

参考文献

Pytorch深度学习入门--曾芃壹

https://www.Pythonf.cn/read/3068

总结

到此这篇关于Pytorch可视化之Visdom使用的文章就介绍到这了,更多相关Pytorch可视化Visdom内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Pytorch可视化之Visdom使用实例

本文链接: https://www.lsjlt.com/news/132105.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Pytorch可视化之Visdom使用实例
    目录一、Visdom简介二、安装和运行三、可视化例子1、输出Hello World!2、显示图像3、绘制散点图4、绘制线条4.1 绘制一条直线4.2 绘制两条直线4.3 绘制正弦曲线...
    99+
    2022-11-12
  • Pytorch可视化之Visdom怎么用
    这篇文章主要为大家展示了“Pytorch可视化之Visdom怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Pytorch可视化之Visdom怎么用”这篇文章吧。一、Visdom简介Visd...
    99+
    2023-06-20
  • PyTorch可视化工具TensorBoard和Visdom怎么用
    今天小编给大家分享一下PyTorch可视化工具TensorBoard和Visdom怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2023-06-26
  • pytorch可视化之hook钩子怎么使用
    这篇文章主要介绍了pytorch可视化之hook钩子怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇pytorch可视化之hook钩子怎么使用文章都会有所收获,下面我们一起来看看吧。一、hook在PyTo...
    99+
    2023-07-05
  • PyTorch中可视化工具的使用
    目录一、网络结构的可视化1.1 通过HiddenLayer可视化网络 1.2 通过PyTorchViz可视化网络 二、训练过程可视化 2.1 通过ten...
    99+
    2023-05-15
    PyTorch 可视化工具
  • GCN 图神经网络使用详解 可视化 Pytorch
    目录手动尝试GCN图神经网络现在让我们更详细地看一下底层图现在让我们更详细地检查edge_index的属性嵌入 Karate Club Network训练 Karate Club N...
    99+
    2022-12-17
    GCN 图神经网络 Pytorch可视化 图神经网络
  • 使用python实现三维图可视化的案例
    这篇文章将为大家详细讲解有关使用python实现三维图可视化的案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。这是学习tensorflow框架中遇到的知识,这里定义函数的时候选用的是将x和y封装起来,方...
    99+
    2023-06-14
  • Python数据可视化之Pyecharts怎么使用
    1. 安装Pyechartspip install pyecharts2. 图表基础2.1 主题风格添加主题风格使用的是 InitOpts() 方法,该方法的主要参数有:参数描述width画布宽度,要求字符串格式,如 width=“500p...
    99+
    2023-05-14
    Python Pyecharts
  • Python数据可视化之Seaborn怎么使用
    这篇文章主要介绍了Python数据可视化之Seaborn怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python数据可视化之Seaborn怎么使用文章都会有所收获,下面我们一起来看看吧。1. 安装 s...
    99+
    2023-06-30
  • Python数据可视化之Pyecharts使用详解
    目录1. 安装Pyecharts2. 图表基础2.1 主题风格2.2 图表标题2.3 图例2.4 提示框2.5 视觉映射2.6 工具箱2.7 区域缩放3. 柱状图 Bar模块4. 折...
    99+
    2022-11-10
  • Python可视化库之HoloViews的使用教程
    目录Python-HoloViews库介绍Python-HoloViews库样例介绍密度图+箱线图散点图+横线图IrisSplom面积图直方图系列RouteChord小提琴图总结参考...
    99+
    2022-11-13
  • Python数据可视化之Pyecharts如何使用
    这篇“Python数据可视化之Pyecharts如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python数据可视化...
    99+
    2023-07-06
  • Python数据可视化实践之使用Matplotlib绘制图表
    目录一. Matplotlib 简介二. 安装与导入三. 基本绘图操作1. 折线图2. 柱状图3. 饼图四. 图表定制五. 多图展示六. 总结一. Matplotlib 简介 Mat...
    99+
    2023-05-18
    Python Matplotlib绘制图表 Python Matplotlib
  • Pytorch平均池化nn.AvgPool2d()使用方法实例
    目录torch.nn.AvgPool2d()作用函数参数公式代码实例情况一情况二情况三情况四总结【pytorch官方文档】:https://pytorch.org/docs/stab...
    99+
    2023-02-22
    pytorch平均池化nn.avgpool2d() pytorch平均池化 pytorch nn.avgpool2d()
  • 使用pytorch提取卷积神经网络的特征图可视化
    目录前言1. 效果图2. 完整代码3. 代码说明4. 可视化梯度,feature总结前言 文章中的代码是参考基于Pytorch的特征图提取编写的代码本身很简单这里只做简单的描述。 1...
    99+
    2022-11-13
  • Python数据可视化之Seaborn的使用详解
    目录1. 安装 seaborn2.准备数据3.背景与边框3.1 设置背景风格3.2 其他3.3 边框控制4. 绘制 散点图5. 绘制 折线图5.1 使用 replot()方法5.2 ...
    99+
    2022-11-10
  • Python可视化Dash工具之plotly基本图形的实现示例
    小编给大家分享一下Python可视化Dash工具之plotly基本图形的实现示例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Plotly Express是对 Plotly.py 的高级封装,内置了大量实用、现代的绘图模板...
    99+
    2023-06-14
  • Python实战之疫苗研发情况可视化的示例分析
    这篇文章将为大家详细讲解有关Python实战之疫苗研发情况可视化的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、安装plotly库因为这部分内容主要是用plotly库进行数据动态展示,所以要先...
    99+
    2023-06-15
  • tensorflow可视化Keras框架中Tensorboard使用示例
    目录Tensorboard详解使用例子1、loss和acc2、权值直方图3、梯度直方图实现代码Tensorboard详解 该类在存放在keras.callbacks模块中。拥有许多参...
    99+
    2022-11-11
  • Python中seaborn库之countplot的数据可视化使用
    在Python数据可视化中,seaborn较好的提供了图形的一些可视化功效。 seaborn官方文档见链接:http://seaborn.pydata.org/api.html countplot是seaborn库中...
    99+
    2022-06-02
    Python seaborn countplot
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作