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

相关推荐
三寸337几秒前
又搞事情,OpenAI 开始关闭微调服务!
人工智能·ai·chatgpt·ai编程
慧一居士2 分钟前
通义灵码、Qoder‌ 、OpenCode、Meoo(秒悟) 几款AI产品功能对比,适用场景和对象全面对比及选型指南
人工智能
l1t2 分钟前
DeepSeek总结的DwarfStar 4:专为 DeepSeek V4 Flash 设计的小型原生推理引擎
人工智能
动物园猫2 分钟前
火灾火焰识别数据集分享(适用于YOLO系列深度学习分类检测任务)
深度学习·yolo·分类
深圳市快瞳科技有限公司3 分钟前
低功耗设计:如何让AI宠物摄像头实现长达数月的续航?
人工智能
TENSORTEC腾视科技7 分钟前
超低功耗 性能卓越|腾视科技重磅推出TS-SG-SM9系列AI算力模组,引领边缘智能计算新篇章
人工智能·ai·算力模组·模组·ai算力·ai算力模组·ai模组
weixin_408099677 分钟前
医疗票据OCR API vs 在线工具:医院和企业该怎么选?
人工智能·ocr·石榴智能·ocr选型·医疗票据ocr·医疗ocr api·医疗数字化
沪漂阿龙8 分钟前
AI大模型面试题:决策树是什么?ID3、C4.5、CART、信息增益、剪枝一文讲透
人工智能·决策树·剪枝
deephub11 分钟前
Feature Engineering 实战:Pandas + Scikit-learn的机器学习特征工程的完整代码示例
人工智能·python·机器学习·pandas·scikit-learn
自动化测试行业观察11 分钟前
手机银行用户体验测评解决方案
人工智能·智能手机·ux