前文通过自定义导出实现了trace, 然后将输入输出节点连接起来就形成了graph, 接下来利用得到的graph写入到onnx文件中。通过onnx.helper就可以构建出一个onnx文件,并且保存下来。
onnxhelper__2">1. onnx.helper 示例
onnx结构中,包括了nodes,initializer ,inputs,outputs,graph
。然后指定opset版本以及使用的pytorch版本,最后利用onnx.save 将graph 信息保存为onnx文件。
- (1)
构建nodes:
通过helper.make_node
来构建,指定:节点名name
, 算子类型opt_type
, 输入节点名inputs
, 输出节点名outputs
, 以及节点属性(可以通过onnx查看,某一算子有哪些节点属性) - (2)
构建initializer:
一般用来定义权重weights,bias等数据,通过helper.make_tensor
来构建,指定:name
,数据类型data_type
, 维度dims
以及数据vals
, 数据需要转换为bytes - (3)
构建inputs 和outputs
: 利用helper.make_value_info
来构建,指定输入或输出节点名,元素类型elem_type以及shape大小 - (4)
构建graph:
使用helper.