🧩 ONNX 自定义算子注册实战
📚 30章 · 从入门到精通
🎯
友好 · 活泼色系
1
01
ONNX基础认知
什么是ONNX、为什么需要ONNX、ONNX的生态与工具链概览。
2
02
ONNX模型结构解析
ONNX Protobuf格式、Graph与Node、ValueInfo与TensorProto。
3
03
自定义算子概念
为什么需要自定义算子、应用场景与挑战。
4
04
ONNX算子注册机制
OpSchema、OpSet、Domain的概念与关系。
5
05
开发环境搭建
Python环境、ONNX源码编译、C++编译工具链配置。
6
06
第一个自定义算子
编写一个简单的AddOne算子,从定义到注册。
7
07
OpSchema详解
输入输出定义、属性定义、类型约束、文档字符串。
8
08
类型与形状推导
TypeConstraint、ShapeInference的实现与注册。
9
09
算子属性(Attribute)
属性类型、默认值、必填属性与可选属性。
10
10
算子Domain管理
自定义Domain的创建、版本管理与命名规范。
11
11
OpSet版本控制
不同OpSet版本注册、向后兼容策略。
12
12
C++算子实现
编写C++ Kernel、ONNX Runtime的算子加载流程。
13
13
Python端算子注册
使用Python API注册自定义算子(ONNX Script)。
14
14
ONNX Runtime自定义算子
在ORT中加载与执行自定义算子。
15
15
算子测试与验证
编写单元测试、使用ONNX检查工具验证模型。
16
16
梯度算子注册
为自定义算子注册反向传播梯度算子。
17
17
ONNX Script高级用法
使用@script和@custom_op装饰器。
18
18
动态形状支持
处理动态输入形状的算子注册与形状推导。
19
19
算子性能优化
内存布局、算子融合、计算图优化技巧。
20
20
多平台编译
Windows、Linux、macOS下的算子编译与部署。
21
21
GPU算子支持
CUDA Kernel编写、GPU内存管理与同步。
22
22
算子量化支持
为自定义算子添加量化与反量化支持。
23
23
ONNX Runtime Extension
使用Extension机制批量注册算子。
24
24
模型转换中的算子映射
从PyTorch/TensorFlow自定义op映射到ONNX。
25
25
调试自定义算子
日志、断点、ONNX Graph可视化工具。
26
26
常见错误与解决方案
类型不匹配、形状错误、版本冲突等。
27
27
社区最佳实践
命名规范、文档编写、开源贡献指南。
28
28
实战案例一:ROI Align
实现一个自定义ROI Align算子。
29
29
实战案例二:TopK优化
实现自定义TopK算子并优化性能。
30
30
课程总结与展望
ONNX未来趋势、自定义算子生态发展。