ONNX 结构分析
onnx将每一个网络的每一层或者说是每一个算子当作节点Node,再由这些Node去构建一个Graph,相当于是一个网络。最后将Graph和这个onnx模型的其他信息结合在一起,生成一个model,也就是最终的.onnx的模型。
ResNet50
这里我们将 ResNet50 的onnx图导出成文件。
- 整体内容
如下图所示,是整体的内容,其中核心部分 graph 被隐藏了起来。除了 graph 之外,包含了一些版本信息。
- node
上文讲过了,网络的每一层或者每一个算子当作一个节点。这里就是一个 BN 节点,也就是说,这个节点的运算类型是 BN 操作,输入数据的来源是所有属性为 [input] 的tensor,当前节点(算子)计算结果的输出为 [output]标签表示的 tensor, 其他的参数都用 attribute 表示。
- weight
initializer 属性描述的是所有 wieght 的内容,在onnnx途中,initializer标签记录了所有weight的维度,类型和名字
- input
输入数据包含了训练数据,标签,学习率。
- output
最终输出的 loss