文章预览
概述 神经网络本质上是一个计算图。计算图的节点是算子,边是参与运算的张量。而通过可视化 ONNX 模型,我们知道 ONNX 记录了所有算子节点的属性信息,并把参与运算的张量信息存储在算子节点的输入输出信息中。事实上,ONNX 模型的结构可以用类图大致表示如下: 如图所示,一个 ONNX 模型可以用 ModelProto 类表示。 ModelProto 包含了版本、创建者等日志信息,还包含了存储计算图结构的 graph。 GraphProto 类则由输入张量信息、输出张量信息、节点信息组成。 张量信息 ValueInfoProto 类包括张量名、基本数据类型、形状。 节点信息 NodeProto 类包含了算子名、算子输入张量名、算子输出张量名。 定义ONNX 尝试完全用 ONNX 的 Python API 构造一个描述线性函数 output=a*x+b 的 ONNX 模型。我们将根据上面的结构,自底向上地构造这个模型。 首先,我们可以用 helper.m
………………………………