【netron】模型可视化工具netron
创始人
2025-05-29 02:21:09

1、简介

在实际的项目中,经常会遇到各种网络模型,需要我们快速去了解网络结构。如果单纯的去看模型文件,脑海中很难直观的浮现网络的架构。这时,就可以使用netron可视化工具,可以清晰的看到每一层的输入输出,网络总体的架构,简单好用。


2、使用方式

这里介绍两种使用方式: 1、使用在线版; 2、下载本地版

1)使用在线版

浏览器访问:https://lutzroeder.github.io/netron/
点击 “Open Model” 按钮,选择要可视化的模型文件即可

在这里插入图片描述

2)下载本地版

终端进行进行安装: pip install netron
安装完成后,在脚本中 调用包 import netron
运行程序 netron.start("model.onnx"), 会自动打开浏览器进行可视化 (最后有例子)


3、支持的网络框架 和 模型文件类型

(1)支持的框架及对应的文件
在这里插入图片描述

(2)实验式支持,可能不太稳定
在这里插入图片描述

我习惯用 pytorch,但是 netron 对 pytorch 的 .pt.pth 文件不是很友好,所以,我都是先转换为 onnx 格式,再进行可视化,下面举例。


4、举例

一般情况下,netron 只展示最初的输入尺寸 和 最后的输出尺寸,中间层的输入输出尺寸都是不展示的(如下)。

在这里插入图片描述
可以同过 onnx.save(onnx.shape_inference.infer_shapes(onnx.load("model.onnx")), "model.onnx") 进行处理。这样中间的每一层的输入输出就都会推理出 并可视化出来了。 (谁有简便方法,评论区留言)

import torch
import torch.nn as nn
import netron
import onnx
from onnx import shape_inferenceclass My_Net(nn.Module):def __init__(self):super(My_Net, self).__init__()self.layer1 = nn.Sequential(nn.Conv2d(3, 16, kernel_size=3, stride=1, padding=1, bias=False),nn.BatchNorm2d(16),nn.LeakyReLU(),)self.layer2 = nn.Sequential(nn.Conv2d(16, 32, kernel_size=1, bias=False),nn.BatchNorm2d(32),nn.LeakyReLU(),)def forward(self, x):x = self.layer1(x)x = self.layer2(x)return xnet = My_Net()
img = torch.rand((1, 3, 224, 224))
torch.onnx.export(model=net, args=img, f='model.onnx', input_names=['image'], output_names=['feature_map'])
onnx.save(onnx.shape_inference.infer_shapes(onnx.load("model.onnx")), "model.onnx")
netron.start("model.onnx")

在这里插入图片描述

相关内容

热门资讯

拇指订购APP经营非法期货交易...   普通投资者想在国内参与商品期货交易的投资者,请务必前往正规期货公司开户,不要随意下载一个APP仅...
祥龙订购app(四川禄宏)高手...   警惕“伪现货”陷阱:起底四川禄宏商品现货市场及其关联APP的非法套路  近年来,随着互联网金融的...
优品订购app虚假宣传模拟盘交...   优品订购APP根本没有任何交易资质,随便注册一家公司,开发一款交易软件,就冒充商城订购来做期货交...
华银app白银现货交易骗局,所...   “两天净赚10万元!”“5元低门槛理财,高收益无风险!”2025年初,投资者受害者刷到抖音上诱人...
掌上工美app投资骗局,白银铂...   “投入10万,3天就能赚2万?”当这样的诱惑弹出在手机屏幕上,不少人会心头一动。而正是这份对“快...