Pytorch visdom知识(看这篇文章就够了!)(代码+注释+图示)

安装visdom

在这里插入图片描述

开始图标->右键->Windows终端

pip install visdom

启动visdom

python -m visdom.server

1.一旦启动服务器,就可以通过在浏览器中输入 http://localhost:8097
访问 Visdom,localhost 可以换成 Visdom 服务的托管地址。
2.打开python编辑程序

可视化接口

vis.text:文本
vis.image:图片
vis.scatter:2D 或 3D 散点图
vis.line:线图
vis.stem:茎叶图
vis.heatmap:热力图
vis.bar:条形图
vis.histogram:直方图
vis.boxplot:箱型图
vis.surf:表面图
vis.contour:轮廓图
vis.mesh:网格图
vis.svg:SVG 图像

以下代码所有的导入的库

import numpy as np
from visdom import Visdom
vis = Visdom()
#这行代码创建了一个 Visdom 的实例,Visdom是类
#用于与 Visdom 服务器进行通信。

vis.text:文本

#打印文本
vis.text('Hello')

在这里插入图片描述

vis.image:图片

#图片
vis.images(
    np.random.rand(3,256,256),
    opts=dict(title='picture',caption='图片标题1')
    )
#生成一个随机的 3 通道、256x256 大小的图片数组。
#opts 参数用于设置标题和图片的标题。
vis.images(
    np.random.randn(20,3,64,64),
    opts=dict(title='网格图像',caption='2')
    )

在这里插入图片描述

vis.scatter:2D 或 3D 散点图

#point
vis.scatter(
    X=np.random.rand(255,2),
    #在 [0, 1) 范围内均匀分布的随机数
    Y=(np.random.randn(255)>0)+1,
    #大于 0 的元素被标记为 2,而小于等于 0 的元素被标记为 1
    opts=dict(
        markersize=10,#markersize 参数设置了散点的大小为 10
        markercolor=np.floor(np.random.random((2,3)) * 255),
        #markercolor 参数用于设置每个散点的颜色。
        #这里的 markercolor 是一个形状为 (2, 3) 的 NumPy 数组,
        #它通过取 [0, 1) 范围内的随机数并乘以 255,
        #再向下取整得到一个 0 到 255 之间的整数。
        #这个数组中的每一行代表一种类别的散点颜色。
        legend=['Men','Women']#文字说明
        ),
    )

在这里插入图片描述

vis.line:线图

#线图 line
Y = np.linspace(-5,5,100)
#从-5到5,共100个元素的数组
#np.linspace(-5, 5, 100)会生成一个从-5到5的一维数组,
#这个数组包含100个等距离的元素。
#这意味着数组的第一个元素是-5,最后一个元素是5,
#而其余98个元素在这个范围内均匀分布。
#最终,变量Y被赋值为这个包含100个元素的一维数组。
vis.line(
    Y=np.column_stack((Y*Y,np.sqrt(Y+5))),
    X=np.column_stack((Y,Y)),
 #Y数组的元素分别平方和开方,
 #并使用NumPy的column_stack()函数将它们堆叠在一起,形成一个二维数组。
 #该二维数组用作折线图中的Y值。

#接下来,X数组的元素是Y数组的两个副本,
#同样使用column_stack()函数将它们堆叠在一起,形成一个二维数组。
#该二维数组用作折线图中的X值。
#也就是画出y=x*x和y=sqrt(x+5)的图像
    opts=dict(markers=False)
    )
 #opts参数设置了柱状图的选项,其中markers=False表示在柱状图中不显示标记。

#默认情况下,stem()函数会在柱状图的每个数据点上显示一个标记符号。
#但是,通过将markers设置为False,可以禁用这个功能,使柱状图不显示标记符号。

#通过将opts=dict(markers=False)作为参数传递给vis.stem()函数,
#柱状图将被创建,并且不会在每个数据点上显示标记符号。

在这里插入图片描述

vis.stem:茎叶图/柱状图


#柱状图 stem
Y=np.linspace(0,2*math.pi,70)
#Y数组使用NumPy的linspace()函数生成了
#一个从0到2π的等间距的70个元素的数组。
X=np.column_stack((np.sin(Y),np.cos(Y)))
#X数组是Y数组中每个元素的正弦值和余弦值,使用NumPy的sin()和cos()函数计算得到。
#然后,使用column_stack()函数将它们堆叠在一起,形成一个二维数组。
#该二维数组用作柱状图中的X值。
vis.stem(
    X=X,
    Y=Y,
    opts=dict(legend=['Sin','Cos'])
    )

在这里插入图片描述

vis.heatmap:热力图

#热力图 heatmap
vis.heatmap(
    X=np.outer(np.arange(1,6),np.arange(1,11)),
#np.arange(1,6)会生成一个从1到5的一维数组,即[1, 2, 3, 4, 5]。
#np.arange(1,11)会生成一个从1到10的一维数组,
#即[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]。
#np.outer(np.arange(1,6),np.arange(1,11))会将这两个一维数组
#作为参数传递给np.outer()函数,
#该函数返回这两个数组的外积(outer product),也就是一个二维数组。
#最终,变量X将被赋值为一个大小为5x10的二维数组,其中每个元素的值是对应位置上两个一维数组元素的乘积。
#[[ 1  2  3  4  5  6  7  8  9 10]
#[ 2  4  6  8 10 12 14 16 18 20]
#[ 3  6  9 12 15 18 21 24 27 30]
#[ 4  8 12 16 20 24 28 32 36 40]
#[ 5 10 15 20 25 30 35 40 45 50]]
    opts=dict(
        columnnames=['a','b','c','d','e','f','g','h','i','j'],#行标签
        rownames=['y1','y2','y3','y4','y5'],#列标签
        colormap='Electric',
    #colormap='Electric'指定了柱状图的颜色映射为'Electric'
    #'Electric'是一种预定义的颜色映射,
    #它使用明亮的、富有对比的颜色,以便清晰地表示数据之间的差异。
        )
    )

在这里插入图片描述

vis.bar:条形图

vis.bar(
    X=np.random.rand(20)
    )
#堆叠
vis.bar(
    X=np.abs(np.random.rand(5,3)),
    opts=dict(
        stacked=True,#stacked=True,堆叠
        legend=['Sina','163','AliBaBa'],
        rownames=['2013','2014','2015','2016','2017']
        )
    )
#分组条形图
vis.bar(
    X=np.random.rand(10,3),
    opts=dict(
        stacked=True,
        #stacked=False:表示条形图不堆叠,每个类别的条形将并排显示
        legend=['A','B','C']
        )
    )

在这里插入图片描述

vis.histogram:直方图

#直方图 histogram
vis.histogram(
    X=np.random.rand(10000),
    opts=dict(numbins=20)
    #numbins参数用于指定柱状图中的柱子数量。
    #通过将numbins设置为20,您将创建一个具有20个柱子的柱状图。
    )

在这里插入图片描述

vis.boxplot:箱型图

#箱型图 boxplot
X=np.random.rand(100,2)
X[:,1]+=2#X[:,1]+=2 将数组的第二列的所有元素增加 2。
vis.boxplot(
    X=X,
    opts=dict(legend=['Men','Women'])
    )

在这里插入图片描述

vis.surf:表面图

#三维表面图 surf
x=np.tile(np.arange(1,101),(100,1))
#tile函数主要的功能是重复某个数组。
#arange 从1到100步长为1  
#tile把这个数组复制的结果为100行1列的a数组
y=x.transpose()
#x.transpose() 函数会将数组 x 的行变为列,将列变为行。
X=np.exp((((x-50)**2)+((y-50)**2))/-(20.0**2))
#X=x**2/4+y**2/2
vis.surf(
    X=X,
    opts=dict(colormap='Hot')
    #通过将colormap设置为'Hot',您将使用热图颜色映射来渲染柱状图。
    #热图颜色映射通常用于将数据映射到从低到高的渐变颜色中
    )

在这里插入图片描述

vis.contour:轮廓图

#轮廓图 contour
vis.contour(
    X=X,
    opts=dict(colormap='Viridis')
    #维吉尼亚州颜色映射通常用于将数据映射到从低到高的渐变颜色中
    )

在这里插入图片描述

vis.mesh:网格图

#网格图 mesh
 # mesh plot 
x = [0, 0, 1, 1, 0, 0, 1, 1] 
y = [0, 1, 1, 0, 0, 1, 1, 0] 
z = [0, 0, 0, 0, 1, 1, 1, 1] 
X = np.c_[x, y, z]
print(X)
#np.c_函数来将x,y和z三个数组按列合并成一个新的数组X
#按列叠加两个矩阵,要求行数相等
i = [7, 0, 0, 0, 4, 4, 6, 6, 4, 0, 3, 2] 
j = [3, 4, 1, 2, 5, 6, 5, 2, 0, 1, 6, 3] 
k = [0, 7, 2, 3, 6, 7, 1, 1, 5, 5, 7, 6] 
Y = np.c_[i, j, k] 
#[[7 3 0]
#[0 4 7]
#[0 1 2]
#[0 2 3]
#[4 5 6]
#[4 6 7]
#[6 5 1]
#[6 2 1]
#[4 0 5]
#[0 1 5]
#[3 6 7]
#[2 3 6]]
vis.mesh(X=X, Y=Y, opts=dict(opacity=0.5))
#opacity 透明度

在这里插入图片描述

vis.svg:SVG 图像

#svg对象
svgstr = """
<svg height="300" width="300">
  <ellipse cx="80" cy="80" rx="50" ry="30"
  style="fill:blue;stroke:purple;stroke-width:2" />
</svg>
"""
#SVG图像的字符串表示。它描述了一个椭圆形(ellipse)元素,
#位置位于(cx, cy) = (80, 80),x轴半径(rx)为50,y轴半径(ry)为30。
#椭圆形使用了红色填充(fill:red),
#紫色边框(stroke:purple)和2像素的边框宽度(stroke-width:2)。

vis.svg(
    svgstr=svgstr,
    opts=dict(title='SVG图像')
    )

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 当pytorch visdom启动后一片蓝,通常表示没有成功加载或连接到可视化服务器。一片蓝的界面通常是因为visdom默认的服务器地址和端口没有正确设置或者服务器未启动。 要解决这个问题,首先需要确保visdom服务器已经正确地安装。可以通过在终端或命令提示符中运行`visdom`命令来启动服务器。如果命令无法运行或返回错误,那么可能需要重新安装visdom。 另外,需要检查visdom服务器的地址和端口设置是否正确。可以在代码中的`visdom.Visdom()`初始化函数中传入`server='http://localhost'`和`port=8097`来设置服务器的地址和端口。如果服务器不在本地,需要将`localhost`更改为服务器的IP地址或域名。 还需要确保网络连接正常,visdom服务器能够与本地的浏览器通信。可以尝试在浏览器中访问`http://localhost:8097`(或服务器的IP地址和端口),看是否能够成功连接到visdom服务器的界面。 如果问题仍然存在,可以尝试重启visdom服务器或重启计算机,然后重新启动visdom并检查设置。 最后,如果以上方法都无效,可以尝试查看visdom的文档、GitHub页面或论坛上是否有相关的解决方案或帮助。 ### 回答2: 当使用PyTorch Visdom进行可视化时,启动Visdom服务器后,一片蓝色的界面表示Visdom服务器已成功启动。 Visdom是一个用于创建、组织和分享实时可视化的工具。它为用户提供了一个交互式的Web界面,可以通过浏览器来查看、分析和呈现数据。当Visdom服务器启动时,它会创建一个Web页面,这个页面的背景颜色通常为蓝色。 在启动Visdom服务器后,可以通过访问特定的IP地址和端口,在浏览器中打开Visdom界面。默认情况下,Visdom服务器在本地主机的8097端口上运行。 虽然Visdom的界面一开始是一片蓝色的,但用户可以通过向Visdom服务器发送数据并进行配置来实现更复杂的可视化。例如,可以使用Visdom提供的API将数据点、折线图、柱状图、图像等添加到界面中。用户还可以使用Visdom的配置选项来自定义界面的样式、布局和交互性。 总结来说,当PyTorch Visdom启动后,一片蓝色的界面表示服务器已启动并准备好接收和展示数据。用户可以通过访问该界面并使用Visdom的功能来进行实时可视化分析。 ### 回答3: pytorch visdom是一种强大的可视化工具,它有助于实时监控和可视化模型的训练过程和结果。当我们在启动visdom后,如果出现一片蓝的情况,可能是由于以下几个原因所导致的。 首先,可能是visdom的服务器未能成功启动。在启动visdom之前,我们需要确保正确安装了visdom库,并且在命令行中输入`python -m visdom.server`来启动visdom服务器。如果服务器未能成功启动,我们可以尝试重新安装visdom或者查看visdom的日志文件以获取更多信息。 其次,可能是visdom的默认端口被占用。visdom默认使用的端口是8097,如果该端口被其他程序占用了,visdom将无法正常启动。我们需要在启动visdom服务器时指定一个可用的端口,例如`python -m visdom.server -p <port>`,其中 `<port>` 是我们指定的端口号。 此外,visdom还需要浏览器的支持来显示可视化结果。如果我们在启动visdom后只看到一片蓝,可能是浏览器没有正确渲染visdom的可视化界面。我们可以尝试更换浏览器,并确保浏览器是最新版本。 最后,如果上述方法都无法解决问题,我们可以通过检查visdom的文档和社区来获取更多的帮助和支持。在文档中,我们可以找到关于visdom使用和故障排除的详细说明,而在社区中,我们可以提问并与其他用户交流,寻求解决方案。 总的来说,当我们启动pytorch visdom后只看到一片蓝,可能的原因包括服务器启动失败、端口占用、浏览器不支持或其他问题。通过检查visdom的配置、端口、浏览器以及查阅文档和社区,我们可以解决这个问题并成功使用visdom进行模型训练的可视化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值