Pytorch的网络结构可视化:Netron与TensorBoardX

  • Pytorch的网络结构可视化:Netron
  • Pytorch的网络结构可视化:TensorBoardX
    • 1.TensorBoardX简介
    • 2. tensorboardX的使用
  • TensorBoard is not found.
  • 参考资料

Pytorch的网络结构可视化:Netron

最近刚刚发现一个非常好用的显示模型神器Netron

https://github.com/lutzroeder/Netron

https://www.electronjs.org/apps/netron

借助这个工具可以像windows的软件一样导入已经训练好的模型加权重即可一键生成

以下是我的一个模型使用该工具可视化结果,只不过目前该工具对于onnx支持非常好,但是pytorch权重转变为onnx是非常方便的,只需要torch.onnx.export()命令即可导出onnx权重

以下代码将resnet18-5c106cde.pth转化为resnet18.onnx

# -- coding: utf-8 --
import io
import torch
import torch.onnx
import torchvisiondevice = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")def pth2onnx():model = torchvision.models.resnet18(pretrained=False)# pth_file = 'resnet18-5c106cde.pth'# model.load_state_dict(torch.load(pth_file, map_location=device))model.to(device)# data type n*c*h*wdummy_input = torch.randn(1, 3, 256, 256)dummy_input = dummy_input.to(device)input_names = ['actual_input']output_names = ['output']torch.onnx.export(model, dummy_input, 'resnet18.onnx', verbose=True, input_names=input_names,output_names=output_names)if __name__ == '__main__':pth2onnx()

resnet18网络结构图

我目前看了下visdom实现pytorch的网络结构查找还是很困难,在stackflow上有很多人使用自己编写的基于matplotlib来实现网络结构可视化适用性也不是很好,后来查找到使用基于tensorboard所开发的tensorboardX可以很方便的实现pytorch网络结构的可视化,因此决定采用这种方式。

Pytorch的网络结构可视化:TensorBoardX

1.TensorBoardX简介

tensorboardX的项目路径:https://github.com/lanpa/tensorboardX

tensorboardX是基于tensorboard的思想用来写tensorboard events的工具,可以实现对传统的tensorboard中 scalar,image,figure,histogram,audio,text,graph,onnx_graph等事件进行编写。

tensorboardX同时具有论坛供大家提出问题解决问题 ,论坛地址:https://github.com/lanpa/tensorboardX/wiki

2. tensorboardX的使用

tensorboardX的安装以及依赖如下所示:

pip install tensorboardpip install tensorflowpip install tensorboardX

tensorboardX的路径下带的有一个规范的demo,可以供大家参考。我这里公布一个我自己测试过的代码,代码来源于:https://blog.csdn.net/sunqiande88/article/details/80155925

# -- coding: utf-8 --
import torch
import torch.nn as nn
from tensorboardX import SummaryWriterclass LeNet(nn.Module):def __init__(self):super(LeNet, self).__init__()self.conv1 = nn.Sequential(  # input size=(1*28*28)nn.Conv2d(in_channels=1, out_channels=6, kernel_size=5, stride=1, padding=2),nn.ReLU(),  # (6*28*28)nn.MaxPool2d(kernel_size=2, stride=2),  # output_size(6*14*14))self.conv2 = nn.Sequential(nn.Conv2d(in_channels=6, out_channels=16, kernel_size=5),nn.ReLU(),  # (16*10*10)nn.MaxPool2d(kernel_size=2, stride=2)  # output_size=(16*5*5))self.fc1 = nn.Sequential(nn.Linear(in_features=16 * 5 * 5, out_features=120),nn.ReLU())self.fc2 = nn.Sequential(nn.Linear(in_features=120, out_features=84),nn.ReLU())self.fc3 = nn.Linear(84, 10)def forward(self, x):x = self.conv1(x)x = self.conv2(x)# Linear的输入和输出都是维度为1的值,所以要把多维度的tensor展平成一维x = x.view(x.size()[0], -1)x = self.fc1(x)x = self.fc2(x)x = self.fc3(x)return xdummy_input = torch.rand(4, 1, 28, 28)  # 假设输入4张1*28*28的图片
model = LeNet()
with SummaryWriter(comment='LeNet') as w:w.add_graph(model, (dummy_input,))

运行该代码后会自动生成一个runs文件夹,并且在文件夹下会有一个对应的event,如下图所示:


此时需要在terminal或者cmd下运行tensorboard --logdir = path
此处千万要注意,如果按照上面的参考文档的方式是会报错的:No graph definition files were found 或者 No definition files were found,总之无法正常显示网络结构图。

此处的path 是event对应的确切,完整的路径

在运行后会出现一个http url,此时需要将该url 拷贝到chrome下即可看到如下所示框图

结构框图如下所示:

此时双击红圈所示的LeNet模块即可看到LeNet的细节信息,如下所示:

至此即可完成使用tensorboardX 对pytorch网络结构的可视化

TensorBoard is not found.

Just started using Tensorflow, but I am not able to use tensorboard command on my cmd, it gives the error command

C:\Users\tushar\PycharmProjects>tensorboard --logdir="NewTF"
'tensorboard' is not recognized as an internal or external command,operable program or batch file.

I had the same problem for tensorflow 1.5.0 and windows10.

Following tensor documentation (“Launching TensorBoard” section), you can try:

python -m tensorboard.main --logdir=[PATH_TO_LOGDIR]

参考资料

  1. https://blog.csdn.net/xiaoxifei/article/details/82735355
  2. https://blog.csdn.net/lei19880402/article/details/103721362

Pytorch的网络结构可视化:Netron与TensorBoardX相关推荐

  1. Pytorch的网络结构可视化(tensorboardX)(详细)

    20210610 if config.test is True:model = load_test_model(model, config)print(model) 打印网络结构 版权声明:本文为博主 ...

  2. PyTorch下的可视化工具(网络结构/训练过程可视化)

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | 锦恢@知乎 来源 | https://zhuanlan.z ...

  3. Pytorch网络结构可视化

    现在用的这个: net = load_model(net, args.trained_model, args.cpu) for name, param in net.named_parameters( ...

  4. Pytorch 网络结构可视化

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:深度学习这件小事 安装 可以通过以下的命令进行安装 co ...

  5. Netron神经网络结构可视化只显示权重没有箭头,已解决

    Netron神经网络结构可视化只显示权重没有箭头,已解决 好不容易写好了网络,保存成了.h5格式,放进Netron里作图发现我的图黑黑丑丑的而且只显示权重,如下图: 可是看别人画得花花绿绿的还漂亮,为 ...

  6. pytorch 神经网络特征可视化

    可参考博客 Pytorch可视化模型任意中间层的类激活热力图(Grad-CAM)_潜行隐耀的博客-CSDN博客_pytorch热力图 Pytorch输出网络中间层特征可视化_Joker-Tong的博客 ...

  7. 卷积神经网络结构可视化工具PlotNeuralNet

    卷积神经网络结构可视化 简介 本文介绍的工具是针对卷积神经网络示意图可视化的,不包括算图.(示意图一般出现在论文中)常见的卷积神经网络示意图绘制工具不少,常用的主要有NN SVG.ConvNetDra ...

  8. Wandb——Pytorch模型指标可视化及超参搜索

    Wandb--Pytorch模型指标可视化及超参搜索 文章目录 Wandb--Pytorch模型指标可视化及超参搜索 前言 一.wandb是什么? 二.可视化模型参数 1.伪代码 2.官方示例 > ...

  9. PyTorch之—可视化(Visdom/TensorboardX)

    文章目录 一.Visdom 安装与使用 小案例 二.TensorBoardX 案例一 案例二 使用PROJECTOR对高维向量可视化 绘制网络结构 一.Visdom Visdom是Facebook在2 ...

最新文章

  1. C#BindingSource的DataSource的注意点
  2. keepalived介绍和配置
  3. c++编码规范_Python02编码规范
  4. Delphi中DLL初始化和退出处理
  5. 新东方雅思词汇---6.1、oppose
  6. lua之弱引用table
  7. 在Ubuntu桌面上显示我的电脑等图标
  8. 剑指offer:22-25记录
  9. SuperSlide
  10. properties 配置回车_PTB220/330 | 长春气象仪器所自动站配置
  11. 手机端图片滑动切换效果
  12. android 屏幕宽高
  13. word从第三页插入页码
  14. 笔记本无线网卡驱动异常如何解决?
  15. 眼部识别和指纹识别,你会选择谁?
  16. 《研磨设计模式》 与 《设计模式之禅》对比
  17. 【PWN系列】2015-Defcon Qualifier R0pbaby
  18. 超好用的八款办公软件,你的电脑都装了吗?
  19. 创建Vo和相应的hbm.xml
  20. 淫思奇巧篇 之 Save Actions 替你摆平代码格式问题

热门文章

  1. WUTOJ 1284: Gold Medal(Java)
  2. python学习之路day05——cmd操作命令
  3. 在Kotlin中 使用js 函数
  4. C/C++ 代码转换规范化的脚本
  5. CSS3的chapter3
  6. pat1014. Waiting in Line (30)
  7. python tips(持续更新)
  8. 电脑功耗测试软件_聊一款“躺着都中枪”的笔记本电脑
  9. hj212协议如何和php通讯,HJ212数据传输标准报文解析
  10. c语言中的数字菱形,打印数字菱形,急啊,帮帮小女子啊。。。