【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")

在这里插入图片描述

相关内容

热门资讯

退市苏吴:股票于12月9日进入... 新京报贝壳财经讯 退市苏吴12月16日公告,公司A股股票于2025年12月12日、2025年12月1...
云南3名村民擅入封闭矿硐窒息死... 出事硐口警示标志 今年8月22日,云南迪庆州维西县白济汛乡3名村民私自破坏长期停用探矿硐封堵设施进入...
甘露特钠迎转机,复星医药拟控股... 12月15日,复星医药宣布,控股子公司复星医药产业与绿谷(上海)医药科技有限公司(“绿谷医药”)及其...
“铁饭碗”迟早要打破? 文/洛水钟鸣(识局微信公共账号zhijuzk)到了今天,谁要再说体制内是“金饭碗”,只能说明他太不了...
卖早餐的蜜雪冰城,被嫌弃了? 近日,蜜雪冰城在大连、西安、南宁和杭州4座试点城市上线早餐产品。 图源:蜜雪冰城小程序 产品线分...