目录
目录
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连接
visdom是FaceBook开发的一款可视化工具,其实质是一款在网页端的web服务器,对Pytorch的支持较好。
详解PyTorch可视化工具visdom这个写的不错
pip install visdom
python -m visdom.server
由于有防火墙,需要本机ssh远程登录
ssh -L 8887(本机):localhost:8097(服务器) 用户@172.XX.XXX.188
from visdom import Visdom
import numpy as np
import time
visdom可视化神经网络的训练步骤大概分为三步:
初始化窗口、初始化窗口信息、更新监听的信息
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) # 这句话不是必要的
主要在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) # 这句话不是必要的
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'))
pip install onnx
pip install netron
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)
import netron
modelpath1 = "/home/yangyeming/NeuralArchitectureSearch/GAN/GANPytorchCollection/dis.onnx"
netron.start(modelpath1)
# 8888本地 8890服务器
ssh -L 8888:localhost:8890 [email protected] -p 22