onnx模型存储规范使用profobuf协议定义,由onnx-ml.proto(3), onnx-data.proto(3), onnx-operators-ml.proto(3)等3个协议文件组成。
为了兼容protobuf2和protobuf3标准,每个协议文件都有2个版本,后缀为.proto和.proto3。
onnx-ml.proto(3)文件定义了Model.ModelProto是onnx模型文件的顶级容器。
message ModelProto {
ir_version
opset_import
GraphProto graph
…
}
message GraphProto {
repeated NodeProto node 图中的所有计算结点
repeated TesnorProto initializer 所有constant输入数据(模型参数,)
repeated ValueInfoProto input 输入变量的信息
repeated ValueInfoProto output 输出变量的信息
repeated ValueInfoProto value_info 图中其余变量的信息
}