当前位置: 首页 > news >正文

Yolov5 ONNX导出报错: export failure: Unsupported ONNX opset version: 17

目录

 1.问题描述

1.1 报错1 :

1.2 报错 2 

 2.解决方案


介绍

ONNX(Open Neural Network Exchange)是一个用于机器学习模型的开放式标准,它旨在使不同的深度学习框架能够将训练好的模型在不同平台上无缝运行。它是由Microsoft和Facebook等公司联合开发的一个项目。 ONNX可以让你将训练好的模型从一个开发环境中导出,在另一个部署环境中无缝运行,也可以让你在不同的平台和设备之间共享模型,包括桌面设备、移动设备和云服务。 ONNX支持多种编程语言和深度学习框架,比如Azure ML、PyTorch、Keras、Caffe2、CNTK等,使得机器学习模型的开发和部署更加便捷和高效。

yolov5s.onnx是将YOLOv5模型导出为ONNX格式的文件,这意味着你可以使用ONNX运行时或将其集成到其他支持ONNX的深度学习框架中,如TensorFlow、PyTorch等。通过使用yolov5s.onnx,你可以将YOLOv5模型部署到各种平台和设备上,包括边缘设备、移动设备和云服务,实现目标检测的应用。

1.问题描述

 最近再用 Yolov5 ONNX 部署时遇到的问题,以前都是用的官网现成的,现在想自己训练的模型,结果模型训练好了,导出不停的失败。

一开始,我以为是我的v5代码版本问题,还换了不同的代码来试,结果也是报错。

1.1 报错1 :

1.2 报错 2 

ONNX: starting export with onnx 1.14.0...
ONNX: export failure  0.1s: Unsupported ONNX opset version: 17

               

最后检查发现是参数的版本问题

这是因为 onnx opset version 设置版本不对,修改版本即可:
在export.py 中的 def parse_opt()函数修改

def parse_opt():parser = argparse.ArgumentParser()parser.add_argument('--weights', type=str, default='./yolov5s.pt', help='weights path')parser.add_argument('--img-size', nargs='+', type=int, default=[640, 640], help='image (height, width)')parser.add_argument('--batch-size', type=int, default=1, help='batch size')parser.add_argument('--device', default='cpu', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')parser.add_argument('--include', nargs='+', default=['torchscript', 'onnx', 'coreml'], help='include formats')parser.add_argument('--half', action='store_true', help='FP16 half-precision export')parser.add_argument('--inplace', action='store_true', help='set YOLOv5 Detect() inplace=True')parser.add_argument('--train', action='store_true', help='model.train() mode')parser.add_argument('--optimize', action='store_true', help='TorchScript: optimize for mobile')parser.add_argument('--dynamic', action='store_true', help='ONNX: dynamic axes')parser.add_argument('--simplify', action='store_true', help='ONNX: simplify model')parser.add_argument('--opset', type=int, default=13, help='ONNX: opset version')opt = parser.parse_args()return opt

---------------------------------------------------------------分割线-------------------------------------------------------  

 2.解决方案

修改如下箭头位置

修改参数

修改 default=12
parser.add_argument('--simplify', action='store_true', help='ONNX: simplify model')parser.add_argument('--opset', type=int, default=12, help='ONNX: opset version')

修改后既成功导出
ONNX: export success, saved as yolov5s.onnx (29.2 MB)


 

http://www.lryc.cn/news/184337.html

相关文章:

  • 2023年全球市场儿科PICC导管总体规模、主要生产商、主要地区、产品和应用细分研究报告
  • Adler-32算法使用Neon优化
  • 数据结构-----平衡二叉树
  • vue3 keepalive翻页保存页面状态
  • 测试工程师思维学习
  • 前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(六)
  • 云硬盘和物理硬盘的区别
  • 数据分析--观察数据处理异常值
  • vue3+elementPlus el-input的type=“number“时去除右边的上下箭头
  • 华为云云耀云服务器L实例评测|Elasticsearch的可视化Kibana工具安装 IK分词器的安装和使用
  • 加密货币交易技巧——人和(一)
  • 数学建模:最优化问题及其求解概述
  • 企业办理CS资质,怎么选择办理等级?
  • 华为云云耀云服务器L实例评测|Huawei Cloud EulerOS 自动化环境部署
  • 从一张表格开始做挖机报价系统
  • Qt扫盲-QTreeView 理论总结
  • BF算法详解(JAVA语言实现)
  • 零基础转行网络工程师,过来人给的一些建议
  • Vue中如何进行分布式搜索与全文搜索(如Elasticsearch)
  • 数据结构-图-最小生成树问题
  • 使用vite+npm封装组件库并发布到npm仓库
  • 85.最大矩形
  • Windows服务器 开机自启动服务
  • 《算法通关之路》chapter17一些通用解题模板
  • 常用求解器安装
  • 第三章:最新版零基础学习 PYTHON 教程(第一节 - Python 运算符)
  • 细粒度特征提取和定位用于目标检测:PPCNN
  • 【STM32单片机】数学自动出题器设计
  • C语言之动态内存管理篇(1)
  • React18入门(第二篇)——React18+Ts项目配置husky、eslint、pretttier、commitLint