0

0

人工智能如何导出ONNX模型_人工智能跨平台模型转换详细方法

蓮花仙者

蓮花仙者

发布时间:2026-02-26 16:36:40

|

911人浏览过

|

来源于php中文网

原创

onnx格式可统一实现多框架模型跨平台部署:一、pytorch用torch.onnx.export导出;二、tensorflow需tf2onnx工具转换;三、webui界面一键导出适配镜像环境;四、ultralytics yolo调用model.export();五、fastai提取learn.model后按pytorch方式导出。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

人工智能如何导出onnx模型_人工智能跨平台模型转换详细方法

如果您已训练完成一个人工智能模型,但需要在不同硬件或编程语言环境中部署,则可能面临框架锁定与兼容性障碍。ONNX格式可作为统一中间表示,实现模型从PyTorch、TensorFlow等训练框架向多平台推理环境的无损迁移。以下是具体导出方法:

一、PyTorch模型导出ONNX

PyTorch是当前最主流的训练框架之一,其torch.onnx.export接口提供原生ONNX导出能力,适用于绝大多数自定义或预训练模型。该方法无需修改模型结构,仅需构造符合要求的输入张量并指定导出参数。

1、确保模型处于评估模式:调用model.eval()禁用dropout和BatchNorm训练行为。

2、准备示例输入张量:使用torch.randn(1, 3, 224, 224)生成与实际推理一致的shape,注意设备一致性(如全部置于CPU)。

3、执行导出命令:调用torch.onnx.export(model, dummy_input, 'model.onnx', opset_version=11, do_constant_folding=True),其中opset_version建议设为11以兼顾兼容性与算子支持。

4、验证导出结果:使用onnx.load()加载文件,并通过onnx.checker.check_model()确认图结构有效性。

二、TensorFlow模型导出ONNX

TensorFlow模型需借助tf2onnx工具桥接转换,该工具将SavedModel或Frozen Graph解析为ONNX计算图。转换过程不依赖原始训练代码,仅需模型序列化文件及明确的输入输出签名。

1、安装转换工具:运行pip install tf2onnx获取最新稳定版。

2、定位模型路径:确认已保存为SavedModel格式(含variables/和saved_model.pb),非Keras HDF5格式。

3、执行命令行转换:输入python -m tf2onnx.convert --saved-model ./my_model --output model.onnx --opset 15,其中--opset推荐15以支持较新算子。

4、指定输入输出节点:若自动推断失败,可通过--inputs input:0 --outputs output:0显式声明tensor名称。

三、WebUI界面一键导出(镜像环境专用)

部分预构建AI镜像(如OCR、GPEN、YOLO系列)集成了图形化ONNX导出模块,屏蔽底层命令行操作,适合无编码经验用户快速生成可部署模型。

1、启动服务后访问http://服务器IP:7860,进入WebUI主界面。

Emergent Drums
Emergent Drums

使用Emergent Drums生成独特的鼓样本,全部免版税。

下载

2、点击顶部导航栏的ONNX 导出Tab页,页面仅显示输入高度、输入宽度两个调节项及导出按钮。

3、根据模型需求设置分辨率:如GPEN常用512×512,OCR检测模型常用800×800,范围限制在320–1536之间。

4、点击导出ONNX按钮,后台自动完成模型加载、输入模拟、图冻结与文件写入,进度条结束后即可下载.onnx文件。

四、Ultralytics YOLO系列模型导出

Ultralytics官方维护的YOLOv8/YOLOv9/YOLO11等模型,内置export方法,支持直接调用Python API或CLI指令导出ONNX,无需手动编写导出脚本。

1、加载已训练权重:使用from ultralytics import YOLO; model = YOLO('yolov9-s.pt')初始化模型实例。

2、调用导出接口:执行model.export(format='onnx', imgsz=640, dynamic=True),其中dynamic=True启用动态batch与尺寸轴。

3、指定Opset版本:添加参数opset=12确保NMS等后处理算子兼容性,避免TensorRT或ONNX Runtime加载失败。

4、检查输出目录:导出完成后,.onnx文件默认生成于weights/子目录下,文件名与原始权重一致,仅扩展名变更。

五、fastai模型导出ONNX

fastai封装了PyTorch训练流程,其模型本质仍是torch.nn.Module,因此可绕过fastai自有保存机制,直接提取底层PyTorch模型进行ONNX转换。

1、获取原始模型对象:调用learn.model获取未包装的nn.Module实例,而非learn.export()生成的pickle文件。

2、切换至评估模式:显式执行learn.model.eval(),防止推理时出现训练态层异常。

3、构造dummy输入:依据模型输入要求生成张量,例如图像分类任务常用torch.randn(1, 3, 224, 224)

4、调用标准导出函数:使用torch.onnx.export(learn.model, dummy_input, 'fastai_model.onnx')完成转换,无需额外参数亦可成功导出基础图。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python AI机器学习PyTorch教程_Python怎么用PyTorch和TensorFlow做机器学习
Python AI机器学习PyTorch教程_Python怎么用PyTorch和TensorFlow做机器学习

PyTorch 是一种用于构建深度学习模型的功能完备框架,是一种通常用于图像识别和语言处理等应用程序的机器学习。 使用Python 编写,因此对于大多数机器学习开发者而言,学习和使用起来相对简单。 PyTorch 的独特之处在于,它完全支持GPU,并且使用反向模式自动微分技术,因此可以动态修改计算图形。

27

2025.12.22

Python 深度学习框架与TensorFlow入门
Python 深度学习框架与TensorFlow入门

本专题深入讲解 Python 在深度学习与人工智能领域的应用,包括使用 TensorFlow 搭建神经网络模型、卷积神经网络(CNN)、循环神经网络(RNN)、数据预处理、模型优化与训练技巧。通过实战项目(如图像识别与文本生成),帮助学习者掌握 如何使用 TensorFlow 开发高效的深度学习模型,并将其应用于实际的 AI 问题中。

148

2026.01.07

TensorFlow2深度学习模型实战与优化
TensorFlow2深度学习模型实战与优化

本专题面向 AI 与数据科学开发者,系统讲解 TensorFlow 2 框架下深度学习模型的构建、训练、调优与部署。内容包括神经网络基础、卷积神经网络、循环神经网络、优化算法及模型性能提升技巧。通过实战项目演示,帮助开发者掌握从模型设计到上线的完整流程。

22

2026.02.10

pytorch是干嘛的
pytorch是干嘛的

pytorch是一个基于python的深度学习框架,提供以下主要功能:动态图计算,提供灵活性。强大的张量操作,实现高效处理。自动微分,简化梯度计算。预构建的神经网络模块,简化模型构建。各种优化器,用于性能优化。想了解更多pytorch的相关内容,可以阅读本专题下面的文章。

455

2024.05.29

Python AI机器学习PyTorch教程_Python怎么用PyTorch和TensorFlow做机器学习
Python AI机器学习PyTorch教程_Python怎么用PyTorch和TensorFlow做机器学习

PyTorch 是一种用于构建深度学习模型的功能完备框架,是一种通常用于图像识别和语言处理等应用程序的机器学习。 使用Python 编写,因此对于大多数机器学习开发者而言,学习和使用起来相对简单。 PyTorch 的独特之处在于,它完全支持GPU,并且使用反向模式自动微分技术,因此可以动态修改计算图形。

27

2025.12.22

Golang 实际项目案例:从需求到上线
Golang 实际项目案例:从需求到上线

《Golang 实际项目案例:从需求到上线》以真实业务场景为主线,完整覆盖需求分析、架构设计、模块拆分、编码实现、性能优化与部署上线全过程,强调工程规范与实践决策,帮助开发者打通从技术实现到系统交付的关键路径,提升独立完成 Go 项目的综合能力。

1

2026.02.26

Golang Web 开发路线:构建高效后端服务
Golang Web 开发路线:构建高效后端服务

《Golang Web 开发路线:构建高效后端服务》围绕 Go 在后端领域的工程实践,系统讲解 Web 框架选型、路由设计、中间件机制、数据库访问与接口规范,结合高并发与可维护性思维,逐步构建稳定、高性能、易扩展的后端服务体系,帮助开发者形成完整的 Go Web 架构能力。

3

2026.02.26

Golang 并发编程专题:掌握多核时代的核心技能
Golang 并发编程专题:掌握多核时代的核心技能

《Golang 并发编程专题:掌握多核时代的核心技能》系统讲解 Go 在并发领域的设计哲学与实践方法,深入剖析 goroutine、channel、调度模型与并发安全机制,结合真实场景与性能思维,帮助开发者构建高吞吐、低延迟、可扩展的并发程序,全面提升多核时代的工程能力。

5

2026.02.26

batoto漫画官网入口与网页版访问指南
batoto漫画官网入口与网页版访问指南

本专题系统整理batoto漫画官方网站最新可用入口,涵盖最新官网地址、网页版登录页面及防走失访问方式说明,帮助用户快速找到batoto漫画官方平台,稳定在线阅读各类漫画内容。

353

2026.02.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
麻省理工大佬Python课程
麻省理工大佬Python课程

共34课时 | 5.4万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号