Pytorch的网络结构可视化:Netron与TensorBoardX
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]
参考资料
- https://blog.csdn.net/xiaoxifei/article/details/82735355
- https://blog.csdn.net/lei19880402/article/details/103721362
Pytorch的网络结构可视化:Netron与TensorBoardX相关推荐
- Pytorch的网络结构可视化(tensorboardX)(详细)
20210610 if config.test is True:model = load_test_model(model, config)print(model) 打印网络结构 版权声明:本文为博主 ...
- PyTorch下的可视化工具(网络结构/训练过程可视化)
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | 锦恢@知乎 来源 | https://zhuanlan.z ...
- Pytorch网络结构可视化
现在用的这个: net = load_model(net, args.trained_model, args.cpu) for name, param in net.named_parameters( ...
- Pytorch 网络结构可视化
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:深度学习这件小事 安装 可以通过以下的命令进行安装 co ...
- Netron神经网络结构可视化只显示权重没有箭头,已解决
Netron神经网络结构可视化只显示权重没有箭头,已解决 好不容易写好了网络,保存成了.h5格式,放进Netron里作图发现我的图黑黑丑丑的而且只显示权重,如下图: 可是看别人画得花花绿绿的还漂亮,为 ...
- pytorch 神经网络特征可视化
可参考博客 Pytorch可视化模型任意中间层的类激活热力图(Grad-CAM)_潜行隐耀的博客-CSDN博客_pytorch热力图 Pytorch输出网络中间层特征可视化_Joker-Tong的博客 ...
- 卷积神经网络结构可视化工具PlotNeuralNet
卷积神经网络结构可视化 简介 本文介绍的工具是针对卷积神经网络示意图可视化的,不包括算图.(示意图一般出现在论文中)常见的卷积神经网络示意图绘制工具不少,常用的主要有NN SVG.ConvNetDra ...
- Wandb——Pytorch模型指标可视化及超参搜索
Wandb--Pytorch模型指标可视化及超参搜索 文章目录 Wandb--Pytorch模型指标可视化及超参搜索 前言 一.wandb是什么? 二.可视化模型参数 1.伪代码 2.官方示例 > ...
- PyTorch之—可视化(Visdom/TensorboardX)
文章目录 一.Visdom 安装与使用 小案例 二.TensorBoardX 案例一 案例二 使用PROJECTOR对高维向量可视化 绘制网络结构 一.Visdom Visdom是Facebook在2 ...
最新文章
- C#BindingSource的DataSource的注意点
- keepalived介绍和配置
- c++编码规范_Python02编码规范
- Delphi中DLL初始化和退出处理
- 新东方雅思词汇---6.1、oppose
- lua之弱引用table
- 在Ubuntu桌面上显示我的电脑等图标
- 剑指offer:22-25记录
- SuperSlide
- properties 配置回车_PTB220/330 | 长春气象仪器所自动站配置
- 手机端图片滑动切换效果
- android 屏幕宽高
- word从第三页插入页码
- 笔记本无线网卡驱动异常如何解决?
- 眼部识别和指纹识别,你会选择谁?
- 《研磨设计模式》 与 《设计模式之禅》对比
- 【PWN系列】2015-Defcon Qualifier R0pbaby
- 超好用的八款办公软件,你的电脑都装了吗?
- 创建Vo和相应的hbm.xml
- 淫思奇巧篇 之 Save Actions 替你摆平代码格式问题
热门文章
- WUTOJ 1284: Gold Medal(Java)
- python学习之路day05——cmd操作命令
- 在Kotlin中 使用js 函数
- C/C++ 代码转换规范化的脚本
- CSS3的chapter3
- pat1014. Waiting in Line (30)
- python tips(持续更新)
- 电脑功耗测试软件_聊一款“躺着都中枪”的笔记本电脑
- hj212协议如何和php通讯,HJ212数据传输标准报文解析
- c语言中的数字菱形,打印数字菱形,急啊,帮帮小女子啊。。。