【深度学习】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 上

相关推荐
下班走回家1 分钟前
AI 编程助手实测对比:GitHub Copilot vs Cursor vs Codeium
人工智能·github·copilot
武雄(小星Ai)1 分钟前
微软自研七款MAI模型,35B参数对标Claude Opus,零OpenAI蒸馏
人工智能·后端·agent
下班走回家2 分钟前
AI 搜索引擎的崛起:Perplexity、GEO 与传统搜索的差异
大数据·人工智能·搜索引擎
下班走回家2 分钟前
从搜索引擎到对话引擎:信息获取方式的根本变革
人工智能·搜索引擎
魔术师Grace3 分钟前
真正值钱的 AI 小工具,可能只是帮人少打一遍字
前端·人工智能
韦东东6 分钟前
究极方案:油猴脚本实现RAG问答前端图片流式体验
人工智能·大模型·油猴脚本·rag·tampermonkey·userscript
云布道师7 分钟前
阿里云 OSS 向量 Bucket 正式商业化,提升 AI 应用效能
人工智能·阿里云·云计算
珠***格8 分钟前
边缘计算——“云-边-端”协同架构解析
大数据·人工智能·分布式·架构·能源·边缘计算
YJlio9 分钟前
OpenClaw v2026.5.26-beta.1 / beta.2 预发布解读:Gateway 加速、transcript 路径统一、多通道修复、语音增强与安装更新链路加固
人工智能·windows·python·ui·缓存·gateway·outlook
Cosolar1 小时前
AutoGen:微软开源的多Agent对话框架详解
人工智能·系统架构·大模型·agent·rag