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

在这里插入图片描述

相关内容

热门资讯

事发石家庄!1分钟,被冲出去二... 7月12日晚8点左右, 石家庄子龙大桥桥下, 上演了惊险一幕。 两名在桥下浅水区戏水的孩子 不慎被急...
特朗普回应霍尔木兹海峡通行收费... △霍尔木兹海峡(资料图) 美国总统特朗普14日就叫停霍尔木兹海峡通行收费一事称,在他提出对霍尔木兹海...
伊朗称打击美军在中东多地军事设... 本文转自【新华网】; 新华社德黑兰7月15日电 伊朗伊斯兰革命卫队当地时间15日早晨在社交媒体发表多...
世界杯“美国化”持续,决赛中场... 当地时间7月14日,美国多方消息指出,本届美加墨世界杯决赛中场休息时长或延长至约30分钟,其中至少包...
“伏前饺”、三伏贴 一份关爱护... 医师给外卖骑手把脉。 7月14日下午2时许,入伏前一天,津城暑气正盛。淘宝闪购中山路站内,忙碌了一上...