onnx.numpy_helper

bfloat16_to_float32(data[, dims])

将 bf16 (作为 uint32) 的 ndarray 转换为 f32 (作为 uint32)。

float8e4m3_to_float32(data[, dims, fn, uz])

将 float8、e4m3 (作为 uint32) 的 ndarray 转换为 f32 (作为 uint32)。

float8e5m2_to_float32(data[, dims, fn, uz])

将 float8、e5m2 (作为 uint32) 的 ndarray 转换为 f32 (作为 uint32)。

from_array(tensor[, name])

将数组转换为 TensorProto,包括 onnx._custom_element_types 中定义的支持类型。

from_dict(dict_[, name])

将 Python 字典转换为 map def。

from_list(lst[, name, dtype])

将列表转换为 sequence def。

from_optional(opt[, name, dtype])

将可选值转换为 Optional def。

to_array(tensor[, base_dir])

将 tensor def 对象转换为 numpy 数组。

to_dict(map_proto)

将 map def 转换为 Python 字典。

to_list(sequence)

将 sequence def 转换为 Python 列表。

to_optional(optional)

将 optional def 转换为 Python 可选。

array

onnx.numpy_helper.from_array(tensor: ndarray, name: str | None = None) TensorProto[source]

将数组转换为 TensorProto,包括 onnx._custom_element_types 中定义的支持类型。

参数:
  • tensor – numpy 数组。

  • name – (可选) 张量的名称。

返回值:

转换后的 tensor def。

返回类型:

TensorProto

onnx.numpy_helper.to_array(tensor: TensorProto, base_dir: str = '') ndarray[source]

将张量定义对象转换为 NumPy 数组。支持 onnx._custom_element_types 中定义的类型。

参数:
  • tensor – TensorProto 对象。

  • base_dir – 如果存在外部张量,base_dir 可以帮助找到它的路径

返回值:

转换后的数组。

返回类型:

arr

由于 NumPy 不支持 ONNX 中定义的所有类型(float 8 类型、blofat16、int4、uint4、float4e2m1),这两个函数使用 :mod:onnx._custom_element_types 中定义的自定义数据类型。

sequence

onnx.numpy_helper.to_list(sequence: SequenceProto) list[Any][source]

将 sequence def 转换为 Python 列表。

参数:

sequence – SequenceProto 对象。

返回值:

转换后的列表。

返回类型:

list

onnx.numpy_helper.from_list(lst: list[Any], name: str | None = None, dtype: int | None = None) SequenceProto[source]

将列表转换为 sequence def。

参数:
  • lst – Python 列表

  • name – (可选)序列的名称。

  • dtype – (可选)输入列表中元素的类型,用于在转换空列表时指定序列值。

返回值:

转换后的序列定义。

返回类型:

SequenceProto

dictionary

onnx.numpy_helper.to_dict(map_proto: MapProto) dict[Any, Any][source]

将 map def 转换为 Python 字典。

参数:

map_proto – MapProto 对象。

返回值:

转换后的字典。

onnx.numpy_helper.from_dict(dict_: dict[Any, Any], name: str | None = None) MapProto[source]

将 Python 字典转换为 map def。

参数:
  • dict – Python 字典

  • name – (可选)映射的名称。

返回值:

转换后的映射定义。

返回类型:

MapProto

optional

onnx.numpy_helper.to_optional(optional: OptionalProto) Any | None[source]

将 optional def 转换为 Python 可选。

参数:

optional – OptionalProto 对象。

返回值:

转换后的可选值。

返回类型:

opt

onnx.numpy_helper.from_optional(opt: Any | None, name: str | None = None, dtype: int | None = None) OptionalProto[source]

将可选值转换为 Optional def。

参数:
  • opt – Python 可选值

  • name – (可选)可选值的名称。

  • dtype – (可选)输入的元素类型,用于在转换空 None 时指定可选值。dtype 必须是有效的 OptionalProto.DataType 值

返回值:

转换后的可选值定义。

返回类型:

optional

tools

onnx.numpy_helper.convert_endian(tensor: TensorProto) None[source]

调用以转换张量中原始数据的字节序。

参数:

tensor – 要转换的 TensorProto。

onnx.numpy_helper.combine_pairs_to_complex(fa: Sequence[int]) list[complex][source]
onnx.numpy_helper.create_random_int(input_shape: tuple[int], dtype: dtype, seed: int = 1) ndarray[source]

为后端/测试/案例/节点创建随机整数数组。

参数:
  • input_shape – 返回整数数组的形状。

  • dtype – 返回整数数组的 NumPy 数据类型。

  • seed – np.random 的种子。

返回值:

随机整数数组。

返回类型:

np.ndarray

onnx.numpy_helper.unpack_int4(data: int32 | ndarray, dims: int | Sequence[int], signed: bool) ndarray[source]

将 int4 的 ndarray(作为打包的 uint8)转换为 f32。有关技术细节,请参见 4 位整数类型

参数:
  • data – NumPy 数组,如果 dims 为 None,则允许空维度。

  • dims – 这些维度用于重新整形解包后的缓冲区

  • signed – 4 位整数是有符号的还是无符号的

返回值:

一个整形为 dims 的 float32 的 NumPy 数组。

cast

onnx.numpy_helper.bfloat16_to_float32(data: int16 | int32 | ndarray, dims: int | Sequence[int] | None = None) ndarray[source]

将 bf16 (作为 uint32) 的 ndarray 转换为 f32 (作为 uint32)。

参数:
  • data – NumPy 数组,如果 dims 为 None,则允许空维度。

  • dims – 如果指定,该函数会重新整形结果。

返回值:

一个 float32 的 NumPy 数组,如果 dims 为 None,则具有相同维度,或者如果指定,则重新整形为 dims。

onnx.numpy_helper.float8e4m3_to_float32(data: int16 | int32 | ndarray, dims: int | Sequence[int] | None = None, fn: bool = True, uz: bool = False) ndarray[source]

将 float8、e4m3 (作为 uint32) 的 ndarray 转换为 f32 (作为 uint32)。

有关技术细节,请参见 存储在 8 位中的浮点数

参数:
  • data – NumPy 数组,如果 dims 为 None,则允许空维度。

  • dims – 如果指定,该函数会重新整形结果。

  • fn – 没有无穷大值。

  • uz – 没有负零。

返回值:

一个 float32 的 NumPy 数组,如果 dims 为 None,则具有相同维度,或者如果指定,则重新整形为 dims。

onnx.numpy_helper.float8e5m2_to_float32(data: int16 | int32 | ndarray, dims: int | Sequence[int] | None = None, fn: bool = False, uz: bool = False) ndarray[source]

将 float8、e5m2 (作为 uint32) 的 ndarray 转换为 f32 (作为 uint32)。

有关技术细节,请参见 存储在 8 位中的浮点数

参数:
  • data – NumPy 数组,如果 dims 为 None,则允许空维度。

  • dims – 如果指定,该函数会重新整形结果。

  • fn – 没有无穷大值。

  • uz – 没有负零。

返回值:

一个 float32 的 NumPy 数组,如果 dims 为 None,则具有相同维度,或者如果指定,则重新整形为 dims。