pytorch 网络结构可视化之netron


目录

  • pytorch 网络结构可视化之netron
  • 一、netron
  • 二、使用步骤
    • 1.安装可视化工具netron
    • 2.导出可视化模型文件
      • ①导出onnx格式模型文件
      • ②torch.jit.trace转换模型文件
    • 3.netron载入模型
  • 三、总结

一、netron

netron是一个深度学习模型可视化库,支持以下格式的模型存储文件:

ONNX (.onnx, .pb)
Keras (.h5, .keras)
CoreML (.mlmodel)
TensorFlow Lite (.tflite)
TensorFlow

但netron并不支持pytorch通过torch.save方法导出的模型文件,(及可视化过程中无法捕获模型的执行操作与结构)。
因此在pytorch保存模型的时候,可以用torch.onnx模块将其导出为onnx格式的模型文件,或用torch.jit.trace模块追踪模型在输入数据后的执行路径调用的操作。

整体的流程分为两步,第一步,基于pytorch两种方法导出模型文件。第二步,netron载入模型文件,进行可视化。

二、使用步骤

1.安装可视化工具netron

pip install netron

2.导出可视化模型文件

①导出onnx格式模型文件

import torchvision
import torch
data = torch.rand(1, 3, 224, 224)
model=torchvision.models.resnet50()
output = model(data)
# 导出为onnx格式
onnx_path = "onnx_model.onnx"
torch.onnx.export(model, data, onnx_path)

②torch.jit.trace转换模型文件

torch.jit.trace在跟踪遇到的计算步骤时通过函数或模块运行示例输入,并输出执行Tracing操作的基于图形的函数。Tracing非常适用于不涉及数据相关控制流的简单模块和功能,例如标准卷积神经网络。但是,如果Tracing具有依赖于数据的if语句和循环的函数,则仅记录由示例输入执行的执行路径调用的操作,即尽量避免转换代码中有if条件控制的模型。

import torchvision
import torch
data = torch.rand(1, 3, 224, 224)
model=torchvision.models.resnet50()
output = model(data)
trace_model = torch.jit.trace(model, data)
trace_model.save("mtrace.pt")

如果模型设计多个输入,需要将传入torch.onnx.export和torch.jit.trace中的data参数改为多输入张量元组,即data=(input1,input2 )

3.netron载入模型

如果能成功转换模型,在python代码调用netron库来载入模型进行可视化。

import netron
netron.start("mtrace.pth")

netron还做了一个在线demo网站,可以直接上传模型文件查看可视化结果,与代码调用netron库来载入模型一样。网址https://netron.app/

整体效果比美观

三、总结

在实际过程中,由于网络模型中复杂的结构以及调用,导出为onnx格式的模型时会出现各式各样的问题

但torch.jit.trace相对好用一些,能使我们快速便捷地了解复杂模型。

pytorch 网络结构可视化之netron相关推荐

  1. Pytorch网络结构可视化

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

  2. Pytorch 网络结构可视化

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

  3. 模型可视化工具Netron手把手教学

    文章目录 模型网络结构可视化之 netron 工具总结 网页版ONNX模型可视化测试 操作如下 yolov5-s 可视化效果如下 yolov4-tiny.cfg.txt + yolov4-tiny.w ...

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

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

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

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

  6. pytorch 网络可视化(五):netron

    引导 共三种方法 1. netron 包可视化网络 1.1 安装 netron 包 1.2 测试是否安装成功 1.3 查看网络结构 2. netron 网页版可视化网络 3. netron 软件可视化 ...

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

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

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

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

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

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

  10. 神经网络模型可视化工具 Netron | 每日工具推荐

    今天要给大家介绍的是神经网络模型可视化工具 Netron,Netron 支持 ONNX, TensorFlow Lite, Keras, Caffe, Darknet, ncnn, MNN, Padd ...

最新文章

  1. java 时间加减_Java中时间加减的比较
  2. 发那科机器人注油_如何给发那科机器人做三年保养?干货!
  3. ACM入门之【线段树习题】
  4. 从知乎了解到,为什么Mysql禁用存储过程、外键和级联?
  5. 旅馆客未满 计算机术语,前厅测试题
  6. 计算机网络之物理层:1、接口特性、同步异步、串行并行、双工
  7. 参数pyinstaller_Python用PyInstaller打包笔记
  8. CSDN创作的markdown语法
  9. JAVA设计模式-适配器模式(Adapter)
  10. python_cookie
  11. HDU1171-Big Event in HDU
  12. 最简单的Centos,Mysql安装教程
  13. python新手入门到大师_GitHub - FainBleeze/Python-100-Days: Python - 100天从新手到大师
  14. Process Monitor工具找网吧广告
  15. FlexPaper查看.swf文件的使用方法
  16. 【转载文章】原 DOS命令学习(从入门到精通)_____附加自己学习笔记
  17. 《失业的程序员》(十二):潜意识的智商 .
  18. 手机浏览器打不开php,php 判断是否是手机浏览器访问?
  19. 苹果手机4位密码突然变6位密码了怎么回事怎么解锁?
  20. 不要996!程序员创建955.WLB不加班公司名单,GitHub周榜第二

热门文章

  1. ubuntu16.04 lidar_align实现三维激光雷达和Imu联合标定
  2. simulink 调整系统采样时间 示波器显示时间
  3. 理解二重积分的几何意义及公式
  4. 云桌面 瘦终端_一体机+瘦终端=桌面云,云平台搭建更便捷,桌面虚拟化
  5. Unicode和GB2312编码表
  6. OC 5028B欧创芯原装,开关降压型大功率恒流驱动芯片
  7. matlab if语句小于等于,matlab的if语句运算符与或怎么用
  8. pm2开启nuxt项目pm2 start ./node_modules/nuxt/bin/nuxt-start
  9. Python画正态曲线、太极图案
  10. 51单片机之定时器/计数器0中断程序