API参考¶
版本控制¶
以下示例展示了如何检索onnx版本、onnx操作集、IR版本。每个新的主要版本都会增加操作集版本(参见操作集版本)。
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.18.0', opset=23, IR_VERSION=11
中间表示(IR)规范是图和操作符的抽象模型以及表示它们的具体格式。添加结构或修改其中一个会增加IR版本。
当添加、删除或修改操作符时,opset版本会增加。 更高的opset意味着更长的操作符列表和更多的选项来实现ONNX函数。通常修改操作符是因为它支持更多的输入和输出类型,或者一个属性变成了输入。
数据结构¶
每个ONNX对象都是基于protobuf消息定义的,并且名称以Proto后缀结尾。例如,NodeProto定义了一个操作符,TensorProto定义了一个张量。下一页列出了所有这些内容。
函数¶
可以直接从前一节描述的类中创建ONNX模型,但使用以下辅助工具创建和验证模型会更快。