一、一句话定位
二、核心作用
三、核心结构(极简)
四、典型流程
五、一句话总结
六、代码演示
最精简、能直接跑的 ONNX 完整流程:
PyTorch 模型 → 导出 ONNX → 用 ONNX Runtime 推理,复制就能用。
PyTorch 模型 → 导出 ONNX → 用 ONNX Runtime 推理,复制就能用。
1. 安装
pip install torch onnx onnxruntime
2. 核心示例:训练 → 导出 ONNX → 推理
import torch
import torch.nn as nn
import onnx
import onnxruntime as ort
import numpy as np
# ======================
# 1. 定义一个简单 PyTorch 模型
# ======================
class Net(nn.Module):
def __init__(self):
super().__init__()
self.fc = nn.Linear(3, 1)
def forward(self, x):
return self.fc(x)
model = Net()
model.eval() # 推理模式
# 构造一个输入
dummy_input = torch.randn(1, 3)
# ======================
# 2. 导出为 ONNX 模型
# ======================
torch.onnx.export(
model,
dummy_input,
"model.onnx", # 输出文件名
opset_version=17, # 版本
input_names=["input"],
output_names=["output"]
)
# 检查 ONNX 模型是否合法
onnx_model = onnx.load("model.onnx")
onnx.checker.check_model(onnx_model)
print("✅ ONNX 模型导出并验证成功")
# ======================
# 3. 用 ONNX Runtime 推理
# ======================
ort_sess = ort.InferenceSession("model.onnx")
# 构造输入
input_np = np.random.randn(1, 3).astype(np.float32)
# 运行
outputs = ort_sess.run(
["output"],
{"input": input_np}
)
print("ONNX Runtime 输出:", outputs[0])
3. 真实场景:ResNet 导出 ONNX(常用)
import torch
import torchvision.models as models
model = models.resnet18(pretrained=True)
model.eval()
dummy = torch.randn(1, 3, 224, 224)
torch.onnx.export(
model, dummy, "resnet18.onnx",
input_names=["image"],
output_names=["logits"],
opset_version=17
)
4. 你只要记住 3 句
- ONNX = 通用模型格式,跨框架、跨硬件、跨语言
- 导出:
torch.onnx.export(...) - 推理:
onnxruntime.InferenceSession
数据统计
数据评估
关于ONNX特别声明
本站蜜蜂导航提供的ONNX都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由蜜蜂导航实际控制,在2026年2月11日 下午1:49收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,蜜蜂导航不承担任何责任。
相关导航
暂无评论...
