onnx.helper

用于创建 ONNX 图组件的辅助函数

所有用于创建 ONNX 图的函数。

onnx.helper.make_attribute(key: str, value: Any, doc_string: str | None = None, attr_type: int | None = None) AttributeProto[source]

根据值类型创建 AttributeProto。

onnx.helper.make_attribute_ref(name: str, attr_type: AttributeProto.AttributeType, doc_string: str | None = None) AttributeProto[source]

创建一个 AttributeProto,它引用父函数中给定名称和类型的属性。

onnx.helper.make_empty_tensor_value_info(name: str) ValueInfoProto[source]
onnx.helper.make_function(domain: str, fname: str, inputs: Sequence[str], outputs: Sequence[str], nodes: Sequence[NodeProto], opset_imports: Sequence[OperatorSetIdProto], attributes: Sequence[str] | None = None, attribute_protos: Sequence[AttributeProto] | None = None, doc_string: str | None = None, overload: str | None = None, value_info: Sequence[ValueInfoProto] | None = None) FunctionProto[source]
onnx.helper.make_graph(nodes: Sequence[NodeProto], name: str, inputs: Sequence[ValueInfoProto], outputs: Sequence[ValueInfoProto], initializer: Sequence[TensorProto] | None = None, doc_string: str | None = None, value_info: Sequence[ValueInfoProto] | None = None, sparse_initializer: Sequence[SparseTensorProto] | None = None) GraphProto[source]

构造 GraphProto

参数:
  • nodes – NodeProto 列表

  • name (string) – 图的名称

  • inputs – ValueInfoProto 列表

  • outputs – ValueInfoProto 列表

  • initializer – TensorProto 列表

  • doc_string (string) – 图的文档字符串

  • value_info – ValueInfoProto 列表

  • sparse_initializer – SparseTensorProto 列表

返回:

GraphProto

onnx.helper.make_map(name: str, key_type: int, keys: list[Any], values: SequenceProto) MapProto[source]

使用指定的键值对参数创建 Map。

转换标准: - 键和值必须具有相同的元素数量 - keys 中的每个键必须是同一类型 - values 中的每个值必须是同一类型

onnx.helper.make_map_type_proto(key_type: int, value_type: TypeProto) TypeProto[source]

创建 map TypeProto。

onnx.helper.make_model(graph: GraphProto, **kwargs: Any) ModelProto[source]

构造 ModelProto

参数:
  • graph (GraphProto) – make_graph 的返回值

  • **kwargs – 要添加到返回实例的任何属性

返回:

ModelProto

onnx.helper.make_node(op_type: str, inputs: Sequence[str], outputs: Sequence[str], name: str | None = None, doc_string: str | None = None, domain: str | None = None, overload: str | None = None, **kwargs: Any) NodeProto[source]

构造 NodeProto。

参数:
  • op_type (string) – 要构造的算子的名称

  • inputs (list of string) – 输入名称列表

  • outputs (list of string) – 输出名称列表

  • name (string, default None) – NodeProto 的可选唯一标识符

  • doc_string (string, default None) – NodeProto 的可选文档字符串

  • domain (string, default None) – NodeProto 的可选域。如果为 None,我们将使用默认域(为空)

  • overload (string, default None) – 可选字段,用于解析对模型本地函数的调用

  • **kwargs (dict) – 节点的属性。make_attribute() 中记录了可接受的值。

返回:

NodeProto

onnx.helper.make_operatorsetid(domain: str, version: int) OperatorSetIdProto[source]

构造 OperatorSetIdProto。

参数:
  • domain (string) – 算子集 ID 的域

  • version (integer) – 算子集 ID 的版本

返回:

OperatorSetIdProto

onnx.helper.make_opsetid(domain: str, version: int) OperatorSetIdProto[source]

构造 OperatorSetIdProto。

参数:
  • domain (string) – 算子集 ID 的域

  • version (integer) – 算子集 ID 的版本

返回:

OperatorSetIdProto

onnx.helper.make_model_gen_version(graph: GraphProto, **kwargs: Any) ModelProto[source]
onnx.helper.make_optional(name: str, elem_type: OptionalProto.DataType, value: google.protobuf.message.Message | None) OptionalProto[source]

创建一个带有指定值参数的 Optional。

onnx.helper.make_optional_type_proto(inner_type_proto: TypeProto) TypeProto[source]

创建一个可选的 TypeProto。

onnx.helper.make_sequence(name: str, elem_type: SequenceProto.DataType, values: Sequence[Any]) SequenceProto[source]

创建一个带有指定值参数的 Sequence。

onnx.helper.make_sequence_type_proto(inner_type_proto: TypeProto) TypeProto[source]

创建一个 sequence TypeProto。

onnx.helper.make_sparse_tensor(values: TensorProto, indices: TensorProto, dims: Sequence[int]) SparseTensorProto[source]

构造一个 SparseTensorProto

参数:
返回:

SparseTensorProto

onnx.helper.make_sparse_tensor_type_proto(elem_type: int, shape: Sequence[str | int | None] | None, shape_denotation: list[str] | None = None) TypeProto[source]

根据数据类型和形状创建一个 SparseTensor TypeProto。

onnx.helper.make_sparse_tensor_value_info(name: str, elem_type: int, shape: Sequence[str | int | None] | None, doc_string: str = '', shape_denotation: list[str] | None = None) ValueInfoProto[source]

根据数据类型和形状创建一个 SparseTensor ValueInfoProto。

onnx.helper.make_tensor(name: str, data_type: int, dims: Sequence[int], vals: Any, raw: bool = False) TensorProto[source]

创建一个带有指定参数的 TensorProto。如果 raw 为 False,此函数将根据 data_type 选择相应的 proto 字段来存储值。如果 raw 为 True,则使用“raw_data” proto 字段来存储值,此时值应该是 bytes 类型。

参数:
  • name (string) – 张量名称

  • data_type (int) – 例如 onnx.TensorProto.FLOAT 的值

  • dims (List[int]) – 形状

  • vals – 值

  • raw (bool) – 如果为 True,vals 包含张量的序列化内容;否则,vals 应该是一个由 data_type 定义的类型的值列表。

返回:

TensorProto

onnx.helper.make_tensor_sequence_value_info(name: str, elem_type: int, shape: Sequence[str | int | None] | None, doc_string: str = '', elem_shape_denotation: list[str] | None = None) ValueInfoProto[source]

根据数据类型和形状创建一个 Sequence[Tensors] ValueInfoProto。

onnx.helper.make_tensor_type_proto(elem_type: int, shape: Sequence[str | int | None] | None, shape_denotation: list[str] | None = None) TypeProto[source]

根据数据类型和形状创建一个 Tensor TypeProto。

onnx.helper.make_training_info(algorithm: GraphProto, algorithm_bindings: list[tuple[str, str]], initialization: GraphProto | None, initialization_bindings: list[tuple[str, str]] | None) TrainingInfoProto[source]
onnx.helper.make_tensor_value_info(name: str, elem_type: int, shape: Sequence[str | int | None] | None, doc_string: str = '', shape_denotation: list[str] | None = None) ValueInfoProto[source]

根据数据类型和形状创建一个 ValueInfoProto。

onnx.helper.make_value_info(name: str, type_proto: TypeProto, doc_string: str = '') ValueInfoProto[source]

使用给定的 type_proto 创建一个 ValueInfoProto。

类型映射

onnx.helper.get_all_tensor_dtypes() KeysView[int][source]

从 TensorProto 获取所有张量类型。

返回:

TensorProto 中的所有张量类型

onnx.helper.np_dtype_to_tensor_dtype(np_dtype: np.dtype) TensorProto.DataType[source]

将 numpy 的 dtype 转换为相应的张量类型。在将 numpy 数组转换为张量时可以使用。

参数:

np_dtype – numpy 的数据类型

返回:

TensorsProto 的数据类型

onnx.helper.tensor_dtype_to_field(tensor_dtype: int) str[source]

将 TensorProto 的 data_type 转换为相应的存储字段名称。在创建张量时可以使用。

参数:

tensor_dtype – TensorProto 的数据类型

返回:

字段名称

onnx.helper.tensor_dtype_to_np_dtype(tensor_dtype: int) dtype[source]

将 TensorProto 的 data_type 转换为相应的 numpy dtype。在创建张量时可以使用。

参数:

tensor_dtype – TensorProto 的数据类型

返回:

numpy 的数据类型

onnx.helper.tensor_dtype_to_storage_tensor_dtype(tensor_dtype: int) int[source]

将 TensorProto 的 data_type 转换为相应的存储数据类型。

参数:

tensor_dtype – TensorProto 的数据类型

返回:

存储数据类型

onnx.helper.tensor_dtype_to_string(tensor_dtype: int) str[source]

获取给定 TensorProto 的 data_type 的名称。

参数:

tensor_dtype – TensorProto 的数据类型

返回:

data_type 的名称

工具

onnx.helper.find_min_ir_version_for(opsetidlist: Sequence[OperatorSetIdProto], ignore_unknown: bool = False) int[source]

给定操作集 ID 列表,确定所需的最小 IR 版本。

参数:
  • opsetidlist – OperatorSetIdProto 的序列。

  • ignore_unknown – 如果为 True,则忽略未知域并返回该域的默认最小版本。

返回:

所需的最小 IR 版本(整数)

其他函数

get_attribute_value(attr)

get_node_attr_value(node, attr_name)

set_metadata_props(proto, dict_value)

set_model_props(model, dict_value)

printable_attribute(attr[, subgraphs])

printable_dim(dim)

printable_graph(graph[, prefix])

将 GraphProto 显示为字符串。

printable_node(node[, prefix, subgraphs])

printable_tensor_proto(t)

printable_type(t)

printable_value_info(v)