API 参考¶
版本控制¶
以下示例展示了如何检索 onnx 版本、onnx opset 和 IR 版本。每个新的主要版本都会增加 opset 版本(参见 Opset 版本)。
from onnx import __version__, IR_VERSION
from onnx.defs import onnx_opset_version
print(f"onnx.__version__={__version__!r}, opset={onnx_opset_version()}, IR_VERSION={IR_VERSION}")
onnx.__version__='1.19.0', opset=23, IR_VERSION=11
中间表示 (IR) 规范是图和算子的抽象模型以及表示它们的具体格式。添加或修改结构会增加 IR 版本。
当添加、移除或修改算子时,opset 版本会增加。更高的 opset 版本意味着算子列表更长,实现 ONNX 函数的选项更多。算子通常因支持更多输入和输出类型,或因属性变为输入而被修改。
数据结构¶
每个 ONNX 对象都基于 protobuf 消息 定义,其名称以后缀 Proto
结尾。例如,NodeProto 定义一个算子,TensorProto 定义一个张量。下一页列出了所有这些对象。
函数¶
ONNX 模型可以直接使用上一节描述的类创建,但使用以下辅助函数创建和验证模型会更快。