onnx.helper

find_min_ir_version_for(opsetidlist[, ...])

给定运算符集ID列表,确定所需的最小IR版本。

get_all_tensor_dtypes()

从TensorProto获取所有张量类型。

get_attribute_value(attr)

get_node_attr_value(node, attr_name)

set_metadata_props(proto, dict_value)

set_model_props(model, dict_value)

float32_to_bfloat16(fval[, truncate])

float32_to_float8e4m3(fval[, scale, fn, uz, ...])

将float32值转换为float8,e4m3(作为int)。

float32_to_float8e5m2(fval[, scale, fn, uz, ...])

将float32值转换为float8,e5m2(作为int)。

make_attribute(key, value[, doc_string, ...])

基于值类型创建AttributeProto。

make_attribute_ref(name, attr_type[, doc_string])

创建包含对父函数指定名称和类型的属性的引用的AttributeProto。

make_empty_tensor_value_info(name)

make_function(domain, fname, inputs, ...[, ...])

make_graph(nodes, name, inputs, outputs[, ...])

构造GraphProto

make_map(name, key_type, keys, values)

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

make_map_type_proto(key_type, value_type)

创建Map TypeProto。

make_model(graph, **kwargs)

构造ModelProto

make_node(op_type, inputs, outputs[, name, ...])

构造NodeProto。

make_operatorsetid(domain, version)

构造OperatorSetIdProto。

make_opsetid(domain, version)

构造OperatorSetIdProto。

make_model_gen_version(graph, **kwargs)

make_optional(name, elem_type, value)

使用指定的value参数创建Optional。

make_optional_type_proto(inner_type_proto)

创建Optional TypeProto。

make_sequence(name, elem_type, values)

使用指定的value参数创建Sequence。

make_sequence_type_proto(inner_type_proto)

创建Sequence TypeProto。

make_sparse_tensor(values, indices, dims)

构造SparseTensorProto

make_sparse_tensor_type_proto(elem_type, shape)

基于数据类型和形状创建SparseTensor TypeProto。

make_sparse_tensor_value_info(name, ...[, ...])

基于数据类型和形状创建SparseTensor ValueInfoProto。

make_tensor(name, data_type, dims, vals[, raw])

使用指定的参数创建TensorProto。

make_tensor_sequence_value_info(name, ...[, ...])

基于数据类型和形状创建Sequence[Tensors] ValueInfoProto。

make_tensor_type_proto(elem_type, shape[, ...])

基于数据类型和形状创建Tensor TypeProto。

make_training_info(algorithm, ...)

make_tensor_value_info(name, elem_type, shape)

基于数据类型和形状创建ValueInfoProto。

make_value_info(name, type_proto[, doc_string])

使用给定的type_proto创建ValueInfoProto。

np_dtype_to_tensor_dtype(np_dtype)

将NumPy的dtype转换为相应的张量类型。

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)

split_complex_to_pairs(ca)

create_op_set_id_version_map(table)

从上表创建从(opset-domain, opset-version)到ir-version的映射。

strip_doc_string(proto)

清空任何嵌套protobuf消息中的doc_string字段

pack_float32_to_4bit(array, signed)

将float32值的数组转换为4位数据类型,并将每两个连续的元素打包到一个字节中。

tensor_dtype_to_np_dtype(tensor_dtype)

将 TensorProto 的数据类型转换为对应的 NumPy 数据类型。

tensor_dtype_to_storage_tensor_dtype(...)

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

tensor_dtype_to_string(tensor_dtype)

获取给定 TensorProto 数据类型的名称。

tensor_dtype_to_field(tensor_dtype)

将 TensorProto 的数据类型转换为对应的存储字段名称。

getter

onnx.helper.get_attribute_value(attr: AttributeProto) Any[source]
onnx.helper.get_node_attr_value(node: NodeProto, attr_name: str) Any[source]

setter

onnx.helper.set_metadata_props(proto: ModelProto | GraphProto | FunctionProto | NodeProto | TensorProto | ValueInfoProto, dict_value: dict[str, str]) None[source]
onnx.helper.set_model_props(model: ModelProto, dict_value: dict[str, str]) None[source]

print

onnx.helper.printable_attribute(attr: AttributeProto, subgraphs: bool = False) str | tuple[str, list[GraphProto]][source]
onnx.helper.printable_dim(dim: Dimension) str[source]
onnx.helper.printable_graph(graph: GraphProto, prefix: str = '') str[source]

将GraphProto显示为字符串。

参数:
  • graph (GraphProto) – 要显示的图

  • prefix (字符串) – 每行的前缀

返回值:

字符串

onnx.helper.printable_node(node: NodeProto, prefix: str = '', subgraphs: bool = False) str | tuple[str, list[GraphProto]][source]

onnx.helper.printable_tensor_proto(t: TensorProto) str[source]
onnx.helper.printable_type(t: TypeProto) str[source]
onnx.helper.printable_value_info(v: ValueInfoProto) str[source]

工具

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

给定运算符集ID列表,确定所需的最小IR版本。

参数:
  • opsetidlist – OperatorSetIdProto 的序列。

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

返回值:

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

onnx.helper.split_complex_to_pairs(ca: Sequence[complex64]) Sequence[int][source]
onnx.helper.create_op_set_id_version_map(table: List[Tuple[str, int, int, int] | Tuple[str, int, int, int, int]]) Dict[Tuple[str, int], int][source]

从上表创建从(opset-domain, opset-version)到ir-version的映射。

onnx.helper.strip_doc_string(proto: Message) None[source]

清空任何嵌套protobuf消息中的doc_string字段

onnx.helper.pack_float32_to_4bit(array: ndarray | Sequence, signed: bool) ndarray[source]

将一个 float32 值的数组转换为 4 位数据类型,并将每两个连续的元素打包到一个字节中。有关技术细节,请参见4 位整数类型

参数:
  • array – 要转换和打包的浮点数数组

  • signed – 4 位变体是带符号的还是无符号的

返回值:

打包后的数组大小为 ceil(farray.size/2)(一维)。

创建函数

所有用于创建 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

参数:
  • **节点** – NodeProto 列表

  • **名称** (字符串) – 图名称

  • **输入** – ValueInfoProto 列表

  • **输出** – ValueInfoProto 列表

  • **初始化器** – TensorProto 列表

  • **文档字符串** (字符串) – 图文档

  • **值信息** – ValueInfoProto 列表

  • **稀疏初始化器** – 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

参数:
  • **图** (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** (字符串) – 要构造的操作符的名称

  • **inputs** (列表字符串) – 输入名称列表

  • **outputs** (列表字符串) – 输出名称列表

  • **name** (字符串, 默认 None) – NodeProto 的可选唯一标识符

  • **doc_string** (字符串, 默认 None) – NodeProto 的可选文档字符串

  • **domain** (字符串, 默认 None) – NodeProto 的可选域。如果为 None,我们将只使用默认域(为空)

  • **overload** (字符串, 默认 None) – 可选字段,用于解析对模型本地函数的调用

  • **kwargs** (字典) – 节点的属性。可接受的值在 make_attribute() 中有说明。

返回值:

NodeProto

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

构造OperatorSetIdProto。

参数:
  • **domain** (字符串) – 操作符集 ID 的域

  • **version** (整数) – 操作符集 ID 的版本

返回值:

OperatorSetIdProto

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

构造OperatorSetIdProto。

参数:
  • **domain** (字符串) – 操作符集 ID 的域

  • **version** (整数) – 操作符集 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]

使用指定的value参数创建Optional。

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

创建Optional TypeProto。

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

使用指定的value参数创建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 字段存储值,在这种情况下,值应为字节类型。

参数:
  • 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: dtype) int[source]

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

参数:

np_dtype – NumPy 的数据类型

返回值:

TensorsProto 的数据类型

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

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

参数:

tensor_dtype – TensorProto 的数据类型

返回值:

字段名称

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

将 TensorProto 的数据类型转换为相应的 NumPy dtype。在创建张量时可以使用它。

参数:

tensor_dtype – TensorProto 的数据类型

返回值:

NumPy 的数据类型

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

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

参数:

tensor_dtype – TensorProto 的数据类型

返回值:

存储数据类型

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

获取给定 TensorProto 数据类型的名称。

参数:

tensor_dtype – TensorProto 的数据类型

返回值:

数据类型的名称

转换

onnx.helper.float32_to_bfloat16(fval: float, truncate: bool = False) int[source]
onnx.helper.float32_to_float8e4m3(fval: float, scale: float = 1.0, fn: bool = True, uz: bool = False, saturate: bool = True) int[source]

将float32值转换为float8,e4m3(作为int)。

参见 以 8 位存储的浮点数 获取技术细节。

参数:
  • fval – 要转换的浮点数

  • scale – 比例因子,在进行类型转换前,将 fval 除以 scale

  • fn – 没有无限值

  • uz – 没有负零

  • saturate – 如果为 True,则任何超出范围的值(包括无穷大)都将变为最大值,否则将变为 NaN。运算符 Cast 的描述完整地描述了差异。

返回值:

转换后的浮点数

onnx.helper.float32_to_float8e5m2(fval: float, scale: float = 1.0, fn: bool = False, uz: bool = False, saturate: bool = True) int[source]

将float32值转换为float8,e5m2(作为int)。

参数:
  • fval – 要转换的浮点数

  • scale – 比例因子,在进行类型转换前,将 fval 除以 scale

  • fn – 没有无限值

  • uz – 没有负零

  • saturate – 如果为 True,则任何超出范围的值(包括无穷大)都将变为最大值,否则将变为 NaN。运算符 Cast 的描述完整地描述了差异。

返回值:

转换后的浮点数