Pytorch的网络结构可视化(tensorboardX)(详细)
20210610
if config.test is True:model = load_test_model(model, config)print(model)
打印网络结构
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiaoxifei/article/details/82735355
最近刚刚发现一个非常好用的显示模型神器Netron
https://github.com/lutzroeder/Netron
借助这个工具可以像windows的软件一样导入已经训练好的模型加权重即可一键生成
我目前看了下visdom实现pytorch的网络结构查找还是很困难,在stackflow上有很多人使用自己编写的基于matplotlib来实现网络结构可视化适用性也不是很好,后来查找到使用基于tensorboard所开发的tensorboardX可以很方便的实现pytorch网络结构的可视化,因此决定采用这种方式。
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 tensorboard
pip install tensorflow
pip install tensorboardX
tensorboardX的路径下带的有一个规范的demo,可以供大家参考。我这里公布一个我自己测试过的代码,代码来源于:https://blog.csdn.net/sunqiande88/article/details/80155925
import torch
import torch.nn as nn
from tensorboardX import SummaryWriter
class LeNet(nn.Module):
def __init__(self):
super(LeNet, self).__init__()
self.conv1 = nn.Sequential( #input_size=(1*28*28)
nn.Conv2d(1, 6, 5, 1, 2),
nn.ReLU(), #(6*28*28)
nn.MaxPool2d(kernel_size=2, stride=2), #output_size=(6*14*14)
)
self.conv2 = nn.Sequential(
nn.Conv2d(6, 16, 5),
nn.ReLU(), #(16*10*10)
nn.MaxPool2d(2, 2) #output_size=(16*5*5)
)
self.fc1 = nn.Sequential(
nn.Linear(16 * 5 * 5, 120),
nn.ReLU()
)
self.fc2 = nn.Sequential(
nn.Linear(120, 84),
nn.ReLU()
)
self.fc3 = nn.Linear(84, 10)
# 定义前向传播过程,输入为x
def forward(self, x):
x = self.conv1(x)
x = self.conv2(x)
# nn.Linear()的输入输出都是维度为一的值,所以要把多维度的tensor展平成一维
x = x.view(x.size()[0], -1)
x = self.fc1(x)
x = self.fc2(x)
x = self.fc3(x)
return x
dummy_input = torch.rand(13, 1, 28, 28) #假设输入13张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网络结构的可视化
————————————————
版权声明:本文为CSDN博主「xiaoxifei」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiaoxifei/article/details/82735355
Pytorch的网络结构可视化(tensorboardX)(详细)相关推荐
- Pytorch的网络结构可视化:Netron与TensorBoardX
Pytorch的网络结构可视化:Netron与TensorBoardX Pytorch的网络结构可视化:Netron Pytorch的网络结构可视化:TensorBoardX 1.TensorBoar ...
- PyTorch下的可视化工具(网络结构/训练过程可视化)
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | 锦恢@知乎 来源 | https://zhuanlan.z ...
- Pytorch 网络结构可视化
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:深度学习这件小事 安装 可以通过以下的命令进行安装 co ...
- Pytorch网络结构可视化
现在用的这个: net = load_model(net, args.trained_model, args.cpu) for name, param in net.named_parameters( ...
- 卷积神经网络结构可视化工具PlotNeuralNet
卷积神经网络结构可视化 简介 本文介绍的工具是针对卷积神经网络示意图可视化的,不包括算图.(示意图一般出现在论文中)常见的卷积神经网络示意图绘制工具不少,常用的主要有NN SVG.ConvNetDra ...
- 【Pytorch】netron可视化——靠谱的使用方法
在神经网络结构可视化这一块,有很多比较实用的工具,但目前来说我看的比较舒服的还是微软小哥开发的Netron软件. 最近又遇到了一些问题,在可视化yolov5结构的时候,使用官方自带的export.py ...
- Tensorboard可视化神经网络详细教程
Tensorboard可视化神经网络详细教程 前言: tensorboard是一个非常强大的工具.不仅仅可以帮助我们可视化神经网络训练过程中的各种参数,而且可以帮助我们更好的调整网络模型.网络参数,这 ...
- pytorch 神经网络特征可视化
可参考博客 Pytorch可视化模型任意中间层的类激活热力图(Grad-CAM)_潜行隐耀的博客-CSDN博客_pytorch热力图 Pytorch输出网络中间层特征可视化_Joker-Tong的博客 ...
- Wandb——Pytorch模型指标可视化及超参搜索
Wandb--Pytorch模型指标可视化及超参搜索 文章目录 Wandb--Pytorch模型指标可视化及超参搜索 前言 一.wandb是什么? 二.可视化模型参数 1.伪代码 2.官方示例 > ...
最新文章
- java 线程执行完就会回收吗_Java线程池技术Executors的这个坑你踩过吗?
- 使用three.js实现炫酷的酸性风格3D页面
- 深入浅出 Linux 惊群:现象、原因和解决方案
- 《ASP.NET Core 与 RESTful API 开发实战》-- (第10章)-- 读书笔记
- c++ 截取屏幕图片并保存
- 刷爆了!这份被程序员疯传的 Python 神作牛在哪?
- 《面向对象程序设计》第六次作业(图形化界面)
- java 数据校验框架_自己写的基于java Annotation(注解)的数据校验框架
- 【easy!】LeetCode 14. Longest Common Prefix
- Codeforces Beta Round #80 (Div. 1 Only) D. Time to Raid Cowavans 分块
- 使用SniperPhish进行电子邮件钓鱼
- centos 安装 谷歌BBR
- html动画页面源码,9款超炫HTML5最新动画源码
- 帮你举例说明什么是Python鸭子类型
- html5 邮箱后缀自动填写,Ant Design Vue AutoComplete 通过自定义选项search实现如自动补充邮箱后缀功能...
- clickhouse连接Tableau
- R 编程中的 LOOCV(留一法交叉验证)
- Android 静默安装apk方法--兼容了5.1, 6.0, 7.1, 10, 11等各安卓版本
- 错题积累(一)——(大一上学期C语言)
- Java的wait()、notify()学习三部曲之一:JVM源码分析
热门文章
- vue-devTools插件安装流程
- 2022-2028年中国抽油烟机行业投资分析及前景预测报告
- libseccomp2 (>= 2.3.0) but 2.2.3-3ubuntu3 is to be installed
- 华为八爪鱼自动驾驶云
- OneFlow 并行特色
- 电阻存储器为edge-AI提供了仿生架构
- 怎样训练YOLOv3
- 小目标检测的增强算法
- [JavaScript] JavaScript 数组挖掘,不只是讲数组哟
- [JAVAEE] Thymeleaf 基本语法: form相关标签