概述

有时候想要绘制一个神经网络的网络结构,可以通过代码中层的定义去用第三方软件依次绘制,但是这样费时费力。因此需要一种快速绘制的办法。


Netron

netron可通过所保存的模型将其用网络的方式可视化出来,但是对于pytorch来说,其支持程度还不够,无法绘制各参数间的关系,可以将pytorch模型导出为onnx格式再使用netron来可视化。

# 自建一个CNN模型并导出为onnx来可视化
import torch
import torch.nn as nnclass CNNModel(nn.Module):def __init__(self, out_channels=10):super(CNNModel, self).__init__()self.conv = nn.Sequential(nn.Conv2d(3, 16, kernel_size=(5, 5), stride=(3, 3), padding=0),nn.LeakyReLU(0.2, inplace=True),nn.BatchNorm2d(16),nn.MaxPool2d(2),nn.Conv2d(16, 32, kernel_size=(5, 5), stride=(3, 3), padding=0),nn.LeakyReLU(0.2, inplace=True),nn.BatchNorm2d(32),nn.MaxPool2d(2),nn.Conv2d(32, 1, kernel_size=(3, 3), stride=(2, 2), padding=0))self.ful_layer = nn.Sequential(nn.Linear(36, 16),nn.LeakyReLU(0.2, inplace=True),nn.BatchNorm1d(16),nn.Linear(16, out_channels),nn.Softmax(dim=1))def forward(self, x):x = self.conv(x)x = x.view(x.size(0), -1)x = self.ful_layer(x)return xmodel = CNNModel()
x = torch.rand(16, 3, 512, 512)
torch.onnx.export(model, x, "CNN.onnx")
  • 用netron打开后的模型结果:


torchviz

使用netron可以直观的显示出网络的结构,但是需要对模型进行转换,在转换的过程中也许会遇到模块的不兼容等问题,修改麻烦,使用torchviz也可以快速的生成模型结构图。要使用torchviz需要先安装Graphviz,这个工具在之前的文章中也有提及。安装后的使用方式也非常简单,依旧以简单CNN网络为例:

import torch
import torch.nn as nn
import torchvizclass CNNModel(nn.Module):def __init__(self, out_channels=10):super(CNNModel, self).__init__()self.conv = nn.Sequential(nn.Conv2d(3, 16, kernel_size=(5, 5), stride=(3, 3), padding=0),nn.LeakyReLU(0.2, inplace=True),nn.BatchNorm2d(16),nn.MaxPool2d(2),nn.Conv2d(16, 32, kernel_size=(5, 5), stride=(3, 3), padding=0),nn.LeakyReLU(0.2, inplace=True),nn.BatchNorm2d(32),nn.MaxPool2d(2),nn.Conv2d(32, 1, kernel_size=(3, 3), stride=(2, 2), padding=0))self.ful_layer = nn.Sequential(nn.Linear(36, 16),nn.LeakyReLU(0.2, inplace=True),nn.BatchNorm1d(16),nn.Linear(16, out_channels),nn.Softmax(dim=1))def forward(self, x):x = self.conv(x)x = x.view(x.size(0), -1)x = self.ful_layer(x)return xmodel = CNNModel()
x = torch.rand(16, 3, 512, 512)
out = model(x)
g = torchviz.make_dot(out)
g.render("test")
  • 最终可以生成PDF文件;

模型结构相较于netron来说更为冗杂。

Pytorch的网络可视化相关推荐

  1. Pytorch输出网络中间层特征可视化

    Pytorch输出网络中间层特征可视化 本文主要介绍了如何提取特定层的特征,然后对它进行可视化.最后给出了不同网络的应用案例. 推荐一个GITHUN实现可视化的工具地址 整体步骤 加载已经预训练好的模 ...

  2. 超实用的7种 pytorch 网络可视化方法,进来收藏一波

    引导 前言 1. torchsummary 2. graphviz + torchviz 3. Jupyter Notebook + tensorwatch 4. tensorboardX 5. ne ...

  3. PyTorch下的网络可视化方式和工具

    直接输出网络结果(以文本形式) 以以下博客为例:4.Deep Residual Network_马鹏森的博客-CSDN博客 The simplest way to visualize is to pr ...

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

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

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

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

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

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

  7. 【深度学习实战】---TensorBoard网络可视化

    [深度学习实战]-TensorBoard网络可视化 前记 为了能够更加深层次的理解我们的网络结构,不必要是画一份简简单单的网络的草图(如[深度学习实战]迈出第一步------编写第一个神经网络),那么 ...

  8. Pytorch骨干网络性能测试

    Pytorch骨干网络性能测试 测试平台: Intel® Core™ i7-8700 CPU @ 3.20GHz × 12 GeForce RTX 2070/PCIe/SSE2 backbone in ...

  9. 科研分享|一个论文关系网络可视化网站

    简介 四月开始啦!每个月开头都会逛一逛"统计之都[1]",因为每月的统计月读[2]更新啦!三月的统计月读有一个内容真的让人心动,而且非常实用!推荐人是:孔令仁,网址链接为:http ...

最新文章

  1. 好系统U盘启动来说一说win10系统有必要更新到最新版本吗?
  2. 程序改错(递归函数):数字转字符
  3. [转]C#与数据结构--树论--平衡二叉树(AVL Tree)
  4. 2011-8-31 身体欠佳
  5. Java是否越来越接受静态导入?
  6. 【老杜】MySQL—day01
  7. xtragrid 某个值 查找_Java 经典算法:二分法查找(循环和递归两种方式实现)
  8. flex实现水平垂直居中
  9. 查找出现次数 oracle,ORACLE计算某个列中出现次数最多的值
  10. 【原创】常用元器件选型目录-cayden(待续)
  11. PS4 自建HEN服务器 | 使用IDM 克隆整个网站
  12. Python PDF转高清图片 可设置转前几张
  13. 868. Binary Gap*
  14. Linux网络服务——DHCP
  15. SpringCloud学习一
  16. Windows10文件后缀名不显示·解决方法
  17. 关注物联网、关注NB-IoT
  18. 代码整洁之道(clean code)序
  19. 批量转换图片大小的代码和软件:2345看图王
  20. SCI:SCI论文写作技巧的详细攻略

热门文章

  1. 小王子,玫瑰花和小狐狸
  2. 卷积的平移不变性公式,卷积减少参数的方法
  3. 宁波到西塘可以坐火车去吗?
  4. zabbix服务端 监控 zabbix客户端 的搭建
  5. C语言求完数案例教程
  6. 按p出现仅计算机然后黑屏了,电脑开机黑屏,提示按任意键继续,怎么破?
  7. asp.net基于BS的图书销售管理系统的设计与实现
  8. 不跑不送不走人情,做好这10件小事,领导也会抬举你,越混越好
  9. 通达信SSL指标公式
  10. Matlab使用S函数