Pytorch+TensorboardX实现可视化训练

最近在调试自己用pytorch搭建的神经网络,理论上来说网络结构是比较合理的,但总是train不出来。由于没有输出中间的权重参数,也不知道问题到底出在哪,所以决定尝试一下对训练过程进行可视化。
常见的pytorch可视化有两种工具:Visdom和TensorboardX。这里主要尝试根据教程使用TensorboardX。

准备工作

pytorch环境

python 3.7
pytorch 1.0
cuda 10
numpy 1.15.4

安装TensorboardX

pip install tensorboardX
pip install tensorboard
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple  # pip换源,加快下载速度
pip install tensorflow

TensorboardX可视化

代码部分

在我的网络里,我主要实现了下边几个可视化:

  • 权重直方图可视化
  • 模型图可视化
tensorboard导入并初始化
from tensorboardX import SummaryWriter 
# 定义Summary_Writer
writer = SummaryWriter('./Result')   # 数据存放在这个文件夹
权重直方图可视化

涉及函数:
add_histogram绘制直方图
用于代码中:

for name, param in model.named_parameters(): 
    writer.add_histogram(name,param.clone().cpu().data.numpy(), idx)

图模型可视化

with writer:
    writer.add_graph(model, model_input)

我自己搭建的网络,测试报错,据说标准网络可以使用。

tensorboard服务启动

因为我的代码是在远程服务器上运行的,所以这个方法适用于在远程跑代码的同学。

  1. 登录远程容器
ssh -L 6006:127.0.0.1:6006 root@主机名(ip)-p 端口号 
  1. 通过cd命令进入存放数据文件夹的上级文件夹,并输入以下命令开启tensorboard服务
tensorboard --logdir 存放数据文件夹名
  1. 在本地谷歌浏览器中输入ip地址127.0.0.1:6006即可

相关图例介绍

相关图例解释可在TensorFlow官网看到,例如TensorBoard 直方图信息中心

参考文献:
Pytorch训练可视化(TensorboardX)
tensorboardX的GitHub
远程访问Tensorboard

你可能感兴趣的:(Pytorch+TensorboardX实现可视化训练)