文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Pytorch可视化之Visdom怎么用

2023-06-20 21:14

关注

这篇文章主要为大家展示了“Pytorch可视化之Visdom怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Pytorch可视化之Visdom怎么用”这篇文章吧。

一、Visdom简介

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

二、安装和运行

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

pip install visdom

安装过程如下:

Pytorch可视化之Visdom怎么用

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

python -m visdom.server

Pytorch可视化之Visdom怎么用

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

Pytorch可视化之Visdom怎么用

三、可视化例子

1、输出Hello World!

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

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

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

Pytorch可视化之Visdom怎么用

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

Pytorch可视化之Visdom怎么用

2、显示图像

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

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

import visdomfrom PIL import Imageimport 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)

结果如下图所示:

Pytorch可视化之Visdom怎么用

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

import visdomfrom PIL import Imageimport torchvision.transforms.functional as TFimport 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)

结果如下:

Pytorch可视化之Visdom怎么用

3、绘制散点图

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

import visdomimport numpy as npimport torch Y = np.random.rand(100)vis = visdom.Visdom()# vis = visdom.Visdom(env='my_wind')#设置环境窗口的名称是'my_wind',如果不设置默认为main# 2—DtwoD_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 rangesthreeD_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,                             )                             )

运行结果如下图所示:

Pytorch可视化之Visdom怎么用

  如果想要通过程序实现散点图参数的更新,可以使用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。

更新后结果如下图所示:

Pytorch可视化之Visdom怎么用

4、绘制线条

4.1 绘制一条直线

代码如下:

import visdomimport numpy as npvis = 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))

结果如图所示:

Pytorch可视化之Visdom怎么用

4.2 绘制两条直线

代码如下:

# 绘制两条直线import visdomimport numpy as npvis = 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))

结果如图所示:

Pytorch可视化之Visdom怎么用

4.3 绘制正弦曲线

代码如下:

import visdomimport torchvis = 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可视化之Visdom怎么用

以上是“Pytorch可视化之Visdom怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯