Yolov8导出onnx显示每层输出shape的方法

本文不生产技术,只做技术的搬运工!!!

前言

        作者最近在复现yolov8-cls,为了方便对照是否完整复现,需要与原版模型进行对比,这里作者选择使用onnx模型进行对比,在使用ultralytics导出官方onnx模型时,导出的onnx模型只显示每一层的参数,而无法显示该层输出张量的维度,如下图所示

左边模型为原始的ultralytics框架导出的yolov8n-cls的onnx模型,右边模型为修改代码后得到的onnx模型,可以看到,右边模型清晰显示了每一层输出张量的shape,话不多少,上代码

代码修改

        其实代码修改非常简单,我们先找到/ultralytics-8.2.0/ultralytics/engine/exporter.py文件,这里作者用的是8.2.0版本,请根据自己的实际路径查找,然后找到下面一行代码,作者这个版本是在409行

onnx.save(model_onnx, f)

将其注释掉,然后在下面写入如下代码

onnx.save(onnx.shape_inference.infer_shapes(model_onnx), f)

至此就完成了修改

onnx导出

from ultralytics import YOLO

# 假设你已经训练好的模型保存在 yolov8m-cls.pt 文件中
model = YOLO("yolov8x-cls.pt")

# 导出为 ONNX 格式
model.export(format='onnx',dynamic=False,imgsz=224)

参数根据实际需求设置即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值