Pytorch可视化工具(visdom、onnx、netron)

目录

目录

1 Visdom

1.1 安装使用

1.2 登录使用

1.3 导入visdom所用的库

1.4 监听loss变化

1.5 监听多条数据 

1.5  图片与对应的标签(以后再更新)

2. onnx 网络结构可视化

2.1 安装

 2.2 网络可视化

2.3 jupyter上执行

2.4 如果服务器有防火墙,还需要ssh连接

1 Visdom

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

详解PyTorch可视化工具visdom这个写的不错

1.1 安装使用

pip install visdom


python -m visdom.server

1.2 登录使用

由于有防火墙,需要本机ssh远程登录

ssh -L 8887(本机):localhost:8097(服务器) 用户@172.XX.XXX.188

1.3 导入visdom所用的库

from visdom import Visdom
import numpy as np
import time

visdom可视化神经网络的训练步骤大概分为三步:

初始化窗口、初始化窗口信息、更新监听的信息

1.4 监听loss变化

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

wind = Visdom()

wind.line([0.],  # Y的第一个点的坐标
          [0.],  # X的第一个点的坐标
          win = "train_loss",    # 窗口的名称
          opts=dict(title="train_loss")   # 图像的标列
          )
# 更新数据

for step in range(10): # 随机获取数据
    loss = np.random.randn() * 0.5 + 2
    wind.line([loss], [step], win = "train_loss",update='append')  #  line(y, x, 哪个窗口, 更新方式)
    time.sleep(0.5)    # 这句话不是必要的

Pytorch可视化工具(visdom、onnx、netron)_第1张图片

1.5 监听多条数据 

 主要在y部分修改[[y1],[y2]]

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

wind = Visdom()
wind.line([[0.,0.]],  # 两个 Y 的第一个点的坐标
          [0.],  # X的第一个点的坐标
          win = "train",    # 窗口的名称
          opts=dict(title="loss&acc",legend=["loss","acc"])   # 图像的标列
          )
# 更新数据

for step in range(10): # 随机获取数据
    loss = np.random.randn() * 0.5 + 2
    acc  = np.random.randn() +10
    wind.line([[loss, acc]], [step], win = "train",update='append')  #  line([[y1],[y2]],[x], 哪个窗口, 更新方式)
    time.sleep(0.5)    # 这句话不是必要的

Pytorch可视化工具(visdom、onnx、netron)_第2张图片

1.5  图片与对应的标签(以后再更新)

    for batch_idx, (data, target) in enumerate(train_loader):
        data = data.view(-1, 28*28)     # 图像数据  正确标签
        data, target = data.to(device), target.cuda()
# ----------------------------------------------------------------

   # 分类的图像  预测的标签
    viz.images(data.view(-1, 1, 28, 28), win='x')
    viz.text(str(pred.detach().cpu().numpy()), win='pred',
             opts=dict(title='pred'))

2. onnx 网络结构可视化

2.1 安装

pip install onnx

pip install netron

 2.2 网络可视化

import torch.onnx


# import network  例子
gen_net = eval('models.' + args.model + '.Generator')(args=args).cuda()
dis_net = eval('models.' + args.model + '.Discriminator')(args=args).cuda()

fixed_z = torch.cuda.FloatTensor(np.random.normal(0, 1, (25, args.latent_dim)))
picture = torch.cuda.FloatTensor(np.random.normal(0, 1, (3, 3, 32, 32)))

torch.onnx.export(gen_net, fixed_z, "SNGAN.onnx",verbose=True, training=True)
torch.onnx.export(dis_net, picture, "dis.onnx", verbose=True, training=True)

2.3 jupyter上执行

import netron
modelpath1 = "/home/yangyeming/NeuralArchitectureSearch/GAN/GANPytorchCollection/dis.onnx"
netron.start(modelpath1)

2.4 如果服务器有防火墙,还需要ssh连接

# 8888本地     8890服务器
ssh -L 8888:localhost:8890 [email protected] -p 22

你可能感兴趣的:(深度学习,pytorch,人工智能,python)