🧩 ONNX 算子实战
30章 · 全兼容
⚡ 排查 · 优化 · 部署
01
ONNX基础认知
什么是ONNX · 为什么需要 · 生态与定位
02
ONNX模型结构解析
计算图 · 节点 · 张量 · 初始器 · Graph
03
ONNX算子概览
标准算子集 · 版本演进 · 常用分类
04
算子兼容性根源
框架差异 · 版本不匹配 · 数据类型精度
05
环境准备与工具链
ONNX Runtime · GPU · simplifier · netron
06
模型导出基础
PyTorch导出 · TensorFlow导出 (tf2onnx)
07
可视化与结构分析
Netron查看 · shape_inference推断形状
08
静态形状与动态形状
固定Batch Size · 动态轴 · symbolic shape
09
算子缺失问题
不支持算子 · 自定义注册 · Fallback
10
算子实现差异
PyTorch映射差异 · Gemm vs MatMul精度
11
数据类型不匹配
FP32/FP16/INT8 · Cast节点插入与优化
12
版本兼容性矩阵
opset版本对应 · 升级降级策略
13
模型简化与优化
onnx-simplifier · 常量折叠 · 冗余消除
14
ONNX Runtime调试
Session配置 · 日志 · Execution Provider
15
常见错误码解析
FAIL · INVALID_ARGUMENT · 更多
16
PyTorch导出常见坑
动态图/静态图 · 控制流 · Tensor限制
17
TensorFlow导出常见坑
tf.cond/while · 自定义层 · SavedModel
18
多输入多输出模型
多输入张量 · 多输出节点 · 动态个数
19
量化模型兼容性
QLinearConv/MatMul · 量化参数 · QDQ
20
Transformer模型兼容性
Attention Mask · 位置编码 · LayerNorm
21
CV模型兼容性
Resize/Interpolation · BN折叠 · NMS
22
NLP模型兼容性
Embedding · Gather · Unsqueeze/Squeeze
23
自定义算子开发
注册算子 · 实现Kernel · ORT集成
24
跨平台部署问题
Win/Linux/ARM/Mac · CPU vs GPU
25
性能分析与Profiling
ORT Profiling · 算子耗时 · 瓶颈定位
26
精度对比与验证
输出对比 · 余弦相似度 · 最大绝对误差
27
自动化测试框架
兼容性Pipeline · 批量导出 · CI/CD
28
社区资源与求助
GitHub Issues · Stack Overflow · Model Zoo
29
实战案例一:ResNet50
导出与部署全流程排查
30
实战案例二:BERT模型
导出与ONNX Runtime推理优化