【手把手教学】如何可视化YOLOv8深度学习的网络结构并保存

《博主简介》

小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。
更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~
👍感谢小伙伴们点赞、关注!

《------往期经典推荐------》

一、AI应用软件开发实战专栏【链接】

项目名称项目名称
1.【人脸识别与管理系统开发2.【车牌识别与自动收费管理系统开发
3.【手势识别系统开发4.【人脸面部活体检测系统开发
5.【图片风格快速迁移软件开发6.【人脸表表情识别系统
7.【YOLOv8多目标识别与自动标注软件开发8.【基于YOLOv8深度学习的行人跌倒检测系统
9.【基于YOLOv8深度学习的PCB板缺陷检测系统10.【基于YOLOv8深度学习的生活垃圾分类目标检测系统
11.【基于YOLOv8深度学习的安全帽目标检测系统12.【基于YOLOv8深度学习的120种犬类检测与识别系统
13.【基于YOLOv8深度学习的路面坑洞检测系统14.【基于YOLOv8深度学习的火焰烟雾检测系统
15.【基于YOLOv8深度学习的钢材表面缺陷检测系统16.【基于YOLOv8深度学习的舰船目标分类检测系统
17.【基于YOLOv8深度学习的西红柿成熟度检测系统18.【基于YOLOv8深度学习的血细胞检测与计数系统
19.【基于YOLOv8深度学习的吸烟/抽烟行为检测系统20.【基于YOLOv8深度学习的水稻害虫检测与识别系统
21.【基于YOLOv8深度学习的高精度车辆行人检测与计数系统22.【基于YOLOv8深度学习的路面标志线检测与识别系统
23.【基于YOLOv8深度学习的智能小麦害虫检测识别系统24.【基于YOLOv8深度学习的智能玉米害虫检测识别系统
25.【基于YOLOv8深度学习的200种鸟类智能检测与识别系统26.【基于YOLOv8深度学习的45种交通标志智能检测与识别系统
27.【基于YOLOv8深度学习的人脸面部表情识别系统28.【基于YOLOv8深度学习的苹果叶片病害智能诊断系统
29.【基于YOLOv8深度学习的智能肺炎诊断系统30.【基于YOLOv8深度学习的葡萄簇目标检测系统
31.【基于YOLOv8深度学习的100种中草药智能识别系统32.【基于YOLOv8深度学习的102种花卉智能识别系统
33.【基于YOLOv8深度学习的100种蝴蝶智能识别系统34.【基于YOLOv8深度学习的水稻叶片病害智能诊断系统
35.【基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统36.【基于YOLOv8深度学习的智能草莓病害检测与分割系统
37.【基于YOLOv8深度学习的复杂场景下船舶目标检测系统38.【基于YOLOv8深度学习的农作物幼苗与杂草检测系统
39.【基于YOLOv8深度学习的智能道路裂缝检测与分析系统40.【基于YOLOv8深度学习的葡萄病害智能诊断与防治系统
41.【基于YOLOv8深度学习的遥感地理空间物体检测系统42.【基于YOLOv8深度学习的无人机视角地面物体检测系统
43.【基于YOLOv8深度学习的木薯病害智能诊断与防治系统44.【基于YOLOv8深度学习的野外火焰烟雾检测系统
45.【基于YOLOv8深度学习的脑肿瘤智能检测系统46.【基于YOLOv8深度学习的玉米叶片病害智能诊断与防治系统
47.【基于YOLOv8深度学习的橙子病害智能诊断与防治系统

二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~

《------正文------》

前言

最近,有很多小伙伴问我如何查看自己训练好的网络模型结构和详细信息,那我在这篇文章将详细介绍如何将YOLOv8网络结构可视化,并且查看详细信息,希望能给大家带来帮助。对于其他深度学习网络模型,也同样可以通过类似的方式使用Netron进行查看。

1.将.pt模型转为.onnx模型

首先,我们需要加载自己训练好的yolov8网络模型best.pt文件。然后,使用model.expert方法将其转为.onnx格式的模型文件。代码如下:

from ultralytics import YOLO
# 加载训练好的模型
model = YOLO("runs/train/weights/best.pt")
# 将模型转为onnx格式
success = model.export(format='onnx')

运行上述代码后,就会在best.pt文件所在的目录下生成同名的.onnx格式文件,如下图:
在这里插入图片描述

2. 使用Netron可视化网络结构

2.1 Netron简介

Netron 是一个开源的模型可视化工具,用于可视化深度学习模型的结构和参数。它可以加载和显示多种框架和模型格式,包括ONNX(Open Neural Network Exchange)、TensorFlow、Keras、Caffe、Core ML 等。通过图形界面,用户可以直观地查看模型的网络结构、层级关系、参数等信息。

Netron 的主要特点包括:

  1. 多框架和多格式支持:Netron 支持常见的深度学习框架和模型格式,包括ONNX、TensorFlow、Keras、Caffe、CoreML 等,因此可以加载和可视化多种类型的深度学习模型。
  2. 直观的可视化界面:Netron提供一个直观的图形界面,以树状结构展示模型的网络层次和参数。用户可以浏览模型的结构、查看各层的输入输出尺寸、参数数量等,帮助理解模型的组成和特性。
  3. 跨平台支持:Netron 可以运行在多种操作系统上,包括 Windows、macOS 和 Linux,方便用户在不同环境中使用。
  4. 快速加载和渲染:Netron 的设计优化了模型的加载和渲染过程,使得大型模型的可视化也能够在短时间内完成。
    Netron 是一个简单但功能强大的模型可视化工具,对于深度学习开发者和研究人员来说,它可以提供有价值的模型分析和理解工具,帮助他们更好地理解和调试深度学习模型。

2.2 网络结构可视化

我们打开Netron地址: https://netron.app,打开后界面如下:
在这里插入图片描述
点击箭头处,选择我们转换好的best.onnx文件,然后点击打开:
在这里插入图片描述
打开后显示结果如下,界面会显示模型的整个网络结构,如下所示:
在这里插入图片描述
在这里插入图片描述
点击网络结构中某个节点,会在界面右侧显示出改节点的详细信息,例如卷积核的大小,卷积核的具体参数等。如下图:
在这里插入图片描述

同时也提供了将网络结构保存为图片的功能,左侧点击expert可将整个结构保存为.png或者.svg图片。
在这里插入图片描述

但是,从显示网络结构中我们可以看到,图中没有显示特征图的维度,只有输入数据的维度(3,640,640)。在netron中,如果想看到特征图的维度,需要在导出为onnx的时候,同时加上特征图维度信息。这个操作需要onnx库的帮助,可以通过pip install onnx进行安装。具体代码如下:

# 增加特征图维度信息
    model_file = 'runs/train/weights/best.onnx'
    # 加载刚转换好的best.onnx文件
    onnx_model = onnx.load(model_file)
    # 重新保存为best2.onnx文件
    onnx.save(onnx.shape_inference.infer_shapes(onnx_model), 'runs/train/weights/best2.onnx')

运行代码后,在best.onnx同目录下会生成一个best2.onnx文件,然后我们重新在https://netron.app打开best2.onnx文件:
在这里插入图片描述
在这里插入图片描述
这次我们可以看到相比之前显示的内容,多了一个增加维度信息的步骤。此时可视化图中就能完整显示所有特征图的维度了。然后我们将其保存为.png图片,如下所示:
在这里插入图片描述
通过上述,操作我们就可以清楚的看到整个网络结构,并且可以查看每个网络节点的详细信息,希望能够帮助到大家。

好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿_旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值