[Pytorch系列-70]:开发环境 - 可视化工具visdom安装与使用方法

Posted 文火冰糖的硅基工坊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Pytorch系列-70]:开发环境 - 可视化工具visdom安装与使用方法相关的知识,希望对你有一定的参考价值。

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122073099


目录

第1章 概述

1.1 概述

1.2 工作原理

第2章 安装与启动

2.1 安装

2.2 启动后台visdom server

2.3 启动前台IE显示

第3章 使用:通过pytorch代码可视化信息

3.1 导入库

3.2 实例化一个Visdom窗口

3.3 通过wind对象可视化图像


第1章 概述

1.1 概述

在深度学习领域,模型训练是一个必须的过程,因此常常需要实时监听并可视化一些数据,如损失值loss,正确率acc等。

在Tensorflow中,最常使用的工具非Tensorboard莫属;

在Pytorch中,也有类似的TensorboardX,但据说其在张量数据加载的效率方面不如visdom。

visdom是FaceBook开发的一款可视化工具,其实质是一款在网页端的web服务器,对Pytorch的支持较好。

github上,很多开源项目,都通过visdom可视化训练结果,甚至是训练过程的,包括图像生成开源项目pytorch-CycleGAN-and-pix2pix ,因此有必要熟悉一下visdom的使用。

1.2 工作原理

 (1)在命令行方式下启动visdom server

(2)启动后台进程:visdom

(3)通过IE打开前台可视化

(4)需要可视化的程序启动创建wind = Visdom() session

(5)通过wind对象提供的方法,visdom server输出可视化图像

第2章 安装与启动

2.1  激活conda环境

conda info -e

conda activate pytorch-gpu-os

2.2 安装

pip install visdom

安装成功的界面如下图所示

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

2.3 启动后台visdom server

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

(1)vidsom启动命令

python -m visdom.server

visdom成功启动后,会返回一个visdom server的网址。

2.4 启动前台IE显示

根据显示的网址然后在浏览器里输入:

http://localhost:8097

IE作为Client端,连接visdom server.

进入后,是一个空白的窗口。

第3章 使用:通过pytorch代码可视化信息

3.1 导入库

from visdom import Visdom
import numpy as np
import time
import requests
import os

3.2 实例化一个Visdom窗口

# 实例化一个窗口
wind = Visdom()

3.3 通过wind对象可视化图像

(1)划单条线

# 初始化窗口信息
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)

(2)显示多条线

# 初始化窗口参数
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)

 (3)显示单张图片文件

# 图片
# 单张图片
wind.image(
     np.random.rand(3, 512, 256),
     opts=
        'title': 'Random',
        'showlegend': True
    
)

(4)显示一批图片

# 多张图片
wind.images(
    np.random.rand(20, 3, 64, 64),
    opts=
        'title': 'multi-images',
    
)

(5)显示散点图

# 散点图
Y = np.random.rand(100)
Y = (Y[Y > 0] + 1.5).astype(int),  # 100个标签1和2

old_scatter = wind.scatter(
    X=np.random.rand(100, 2) * 100,
    Y=Y,
    opts=
        'title': 'Scatter',
        'legend': ['A', 'B'],
        'xtickmin': 0,
        'xtickmax': 100,
        'xtickstep': 10,
        'ytickmin': 0,
        'ytickmax': 100,
        'ytickstep': 10,
        'markersymbol': 'cross-thin-open',
        'width': 800,
        'height': 600
    ,
)

# time.sleep(5)
# 更新样式
wind.update_window_opts(
    win=old_scatter,
    opts=
        'title': 'New Scatter',
        'legend': ['Apple', 'Banana'],
        'markersymbol': 'dot'
    
)

(6)显示3D散点图

# 3D散点图
wind.scatter(
    X=np.random.rand(100, 3),
    Y=Y,
    opts=
        'title': '3D Scatter',
        'legend': ['Men', 'Women'],
        'markersize': 5
    
)

(7)显示柱状图

# 柱状图
wind.bar(X=np.random.rand(20))
wind.bar(
    X=np.abs(np.random.rand(5, 3)),  # 5个列,每列有3部分组成
    opts=
        'stacked': True,
        'legend': ['A', 'B', 'C'],
        'rownames': ['2012', '2013', '2014', '2015', '2016']
    
)

wind.bar(
    X=np.random.rand(20, 3),
    opts=
        'stacked': False,
        'legend': ['America', 'Britsh', 'China']
    
)

 (8)显示热力图

# 热力图
wind.heatmap(
    X=np.outer(np.arange(1, 6), np.arange(1, 11)),
    opts=
        'columnnames': ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'],
        'rownames': ['y1', 'y2', 'y3', 'y4', 'y5'],
        'colormap': 'Electric'
    
)

(9)地表图

# 地表图
x = np.tile(np.arange(1, 101), (100, 1))
y = x.transpose()
X = np.exp((((x - 50) ** 2) + ((y - 50) ** 2)) / -(20.0 ** 2))
wind.contour(X=X, opts=dict(colormap='Viridis'))

(10)物体表面图

# 表面图
wind.surf(X=X, opts='colormap': 'Hot')


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122073099

以上是关于[Pytorch系列-70]:开发环境 - 可视化工具visdom安装与使用方法的主要内容,如果未能解决你的问题,请参考以下文章

PyTorch深度学习

pytorch学习系列——环境搭建

PyTorch学习笔记 6.可视化工具visdom

PyTorch学习笔记 6.可视化工具visdom

三维深度学习Pytorch-PointNet系列之win10下环境安装与demo运行

从零开始系列—— Anaconda + PyCharm + PyTorch(GPU) + 虚拟环境(全步骤,多图警告)