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)(详细)相关推荐

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

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

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

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

  3. Pytorch 网络结构可视化

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

  4. Pytorch网络结构可视化

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

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

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

  6. 【Pytorch】netron可视化——靠谱的使用方法

    在神经网络结构可视化这一块,有很多比较实用的工具,但目前来说我看的比较舒服的还是微软小哥开发的Netron软件. 最近又遇到了一些问题,在可视化yolov5结构的时候,使用官方自带的export.py ...

  7. Tensorboard可视化神经网络详细教程

    Tensorboard可视化神经网络详细教程 前言: tensorboard是一个非常强大的工具.不仅仅可以帮助我们可视化神经网络训练过程中的各种参数,而且可以帮助我们更好的调整网络模型.网络参数,这 ...

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

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

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

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

最新文章

  1. java 线程执行完就会回收吗_Java线程池技术Executors的这个坑你踩过吗?
  2. 使用three.js实现炫酷的酸性风格3D页面
  3. 深入浅出 Linux 惊群:现象、原因和解决方案
  4. 《ASP.NET Core 与 RESTful API 开发实战》-- (第10章)-- 读书笔记
  5. c++ 截取屏幕图片并保存
  6. 刷爆了!这份被程序员疯传的 Python 神作牛在哪?
  7. 《面向对象程序设计》第六次作业(图形化界面)
  8. java 数据校验框架_自己写的基于java Annotation(注解)的数据校验框架
  9. 【easy!】LeetCode 14. Longest Common Prefix
  10. Codeforces Beta Round #80 (Div. 1 Only) D. Time to Raid Cowavans 分块
  11. 使用SniperPhish进行电子邮件钓鱼
  12. centos 安装 谷歌BBR
  13. html动画页面源码,9款超炫HTML5最新动画源码
  14. 帮你举例说明什么是Python鸭子类型
  15. html5 邮箱后缀自动填写,Ant Design Vue AutoComplete 通过自定义选项search实现如自动补充邮箱后缀功能...
  16. clickhouse连接Tableau
  17. R 编程中的 LOOCV(留一法交叉验证)
  18. Android 静默安装apk方法--兼容了5.1, 6.0, 7.1, 10, 11等各安卓版本
  19. 错题积累(一)——(大一上学期C语言)
  20. Java的wait()、notify()学习三部曲之一:JVM源码分析

热门文章

  1. vue-devTools插件安装流程
  2. 2022-2028年中国抽油烟机行业投资分析及前景预测报告
  3. libseccomp2 (>= 2.3.0) but 2.2.3-3ubuntu3 is to be installed
  4. 华为八爪鱼自动驾驶云
  5. OneFlow 并行特色
  6. 电阻存储器为edge-AI提供了仿生架构
  7. 怎样训练YOLOv3
  8. 小目标检测的增强算法
  9. [JavaScript] JavaScript 数组挖掘,不只是讲数组哟
  10. [JAVAEE] Thymeleaf 基本语法: form相关标签