【深度学习】ONNX介绍

ONNX(Open Neural Network Exchange)

ONNX 是一种用于表示深度学习模型的开放格式,使得不同深度学习框架(如 PyTorch、TensorFlow、Caffe2 等)之间的模型能够相互交换。

需安装:

bash 复制代码
pip install --upgrade onnx onnxscript onnxruntime

Pytorch张量

可使用torch.rand()方法创建0~1均匀分布的随机数,使用torch.randn()方法创建标准正态分布随机数,使用torch.zeros()和torch.ones()方法创建全0和全1的张量。

在构造张量时使用dtype明确其类型。

PyTorch针对torch.float32和torch.int64类型有专门这样的简写形式是因为,这两种类型特别重要,模型的输入类型一般都是torch.float32,而模型分类问题的标签类型一般为torch.int64。

torch.onnx.export 是 PyTorch 自带的把模型转换成 ONNX 格式的函数。前三个参数分别是要转换的模型模型的任意一组输入导出的 ONNX 文件的文件名

简单示例

python 复制代码
import torch  
import torchvision.models as models  
  
# 加载一个预训练的 PyTorch 模型  
model = models.resnet18(pretrained=True)  
model.eval()  
  
# 创建一个虚拟输入张量(这里使用随机数据)  
dummy_input = torch.randn(1, 3, 224, 224)  # 假设输入是一张 224x224 的 RGB 图像  
  
# 导出模型为 ONNX 格式  
torch.onnx.export(model, dummy_input, "resnet18.onnx", verbose=True, input_names=["input_0"], output_names=["output_0"])

注意点:

  • 确保你的 PyTorch 模型在导出之前已经处于评估模式(model.eval()

  • 示例输入(dummy input)应该与你的模型训练时使用的输入具有相同的形状和数据类型。

  • 在将输入数据传递给 ONNX Runtime 之前,请确保它们已经转换为 NumPy 数组,并且位于 CPU 上

相关推荐
冬奇Lab5 分钟前
一天一个开源项目(第206篇):T3 Code - AI 编程 Agent 的统一控制台
人工智能·开源·资讯
IT古董5 分钟前
AI 资讯日报 | 2026年9月1日 :混元 Hy4 开源、DeepSeek 多模态登顶、可灵获国家队 14 亿注资
人工智能·开源
冬奇Lab5 分钟前
Code Agent 解剖(18):AgentTeams——TeamFanout 与 TeamCollect 的并行机制
人工智能
ai小陈11 分钟前
FramePack图生视频云端部署实战:从单图输入到视频输出的完整流程
服务器·人工智能·安全·ai·音视频·gpu算力
程序员-Benothing26 分钟前
OpenAI断供Cursor:当AI巨头开始“清理门户“,开源生态的中立性还能撑多久?
人工智能·开源·大模型
光锥智能30 分钟前
机器人走进大众时代加速到来:郎朗跨界合作启元机器人,消费级人形机器人开启直播发售
人工智能
Jialu.33 分钟前
中文 BERT 多任务分类项目:从模型结构到训练细节
人工智能·pytorch·分类·微软·nlp·bert
ZhouDevin33 分钟前
算法论文/数据集3——CLD(TMLR2025)压缩训练集,仅保留对验证集有益的样本
人工智能·深度学习·算法·计算机视觉
长沙京卓36 分钟前
Copilot Coding Agent 变了:AI 编程正在从插件变成项目成员
人工智能·ai
AIGC大时代1 小时前
知网 AIGC 检测在罚什么:均匀句长、低指代、零口癖,并不等于「用过 ChatGPT」
人工智能·chatgpt·nlp·aigc·论文·知网·学术规范