1.ONNX一本通:综述&使用&源码分析(持续更新)
ONNX一本通:综述&使用&源码分析(持续更新)
ONNX详解:功能概述、源码Python API应用与源码解析
ONNX的源码核心功能集中在模型定义、算子操作、源码序列化与反序列化,源码以及模型验证上。源码好用的项目源码它主要通过onnx-runtime实现运行时支持,源码短中线源码包括图优化和平台特定的源码算子库。模型转换工具如tf、源码pytorch和mindspore的源码FMK工具包负责各自框架模型至ONNX的转换。ONNX Python API实战
场景一:构建线性回归模型,源码基础操作演示了API的源码使用。
场景二至四:包括为op添加常量参数、源码属性以及控制流(尽管控制流在正式模型中应尽量避免)。源码通信达expma源码
场景五和后续:涉及for循环和自定义算子的源码添加,如Cos算子,源码涉及算子定义、添加到算子集、kdj组合指标源码Python实现等步骤。
源码分析
onnx.checker:负责模型和元素的检查,cpp代码中实现具体检查逻辑。
onnx.compose、溯源码是查询onnx.defs、onnx.helper等:提供模型构建、算子定义和辅助函数。
onnx.numpy_helper:处理numpy数组与onnx tensor的转换。
onnx.reference:提供Python实现的op推理功能。
onnx.shape_inference:进行模型的形状推断。
onnx.version_converter:处理不同op_set_version的转换。
转换实践
ONNX支持将tf、pytorch和mindspore的模型转换为ONNX格式,同时也有ONNX到TensorRT、MNN和MS-Lite等其他格式的转换选项。总结
ONNX提供了一个统一的IR(中间表示)框架,通过Python API构建模型,支持算子定义的检查和模型的序列化。同时,它利用numpy实现基础算子,便于模型的正确性验证,并支持不同框架模型之间的转换。