Onnx模型格式
Onnx
模型格式
为什么要用Onnx
格式
Onnx
是一种针对机器学习设计的开放式的文件格式,用于储存训练好的模型。可以使不同的深度学习框架采用相同的格式存储模型数据。``Onnx`是一种便于在各个主流深度学习框架中迁移模型的中间表达格式
ONNX
与Protobuf
ONNX
采用序列化数据结构协议protobuf
来存储模型信息。我们可以通过protobuf
自己设计一种数据结构的协议,然后是用各种语言去读取或者写入。ONNX
中采用Onnx.proto
定义ONNX
的数据协议规则和一些其他的信息。同样,也可以借助protobuf
来解析Onnx
模型
Onnx的数据结构
Onnx
的模型解析流程
- 读取
pytorch
或者tensorflow
或者其他深度学习框架转下训练好的模型换过来的.onnx
文件,获取整个网络模型(model
)结构 - 通过
model
结构访问graph
结构 - 通过
graph
结构访问整个网络的所有node
以及inputs
和outputs
- 通过
node
结构可以获取每一层的参数信息