onnx.numpy_helper¶
|
将 bf16 (作为 uint32) 的 ndarray 转换为 f32 (作为 uint32)。 |
|
将 float8、e4m3 (作为 uint32) 的 ndarray 转换为 f32 (作为 uint32)。 |
|
将 float8、e5m2 (作为 uint32) 的 ndarray 转换为 f32 (作为 uint32)。 |
|
将数组转换为 TensorProto,包括 |
|
将 Python 字典转换为 map def。 |
|
将列表转换为 sequence def。 |
|
将可选值转换为 Optional def。 |
|
将 tensor def 对象转换为 numpy 数组。 |
|
将 map def 转换为 Python 字典。 |
|
将 sequence def 转换为 Python 列表。 |
|
将 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。
- 返回类型:
- 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 对象。
- 返回值:
转换后的列表。
- 返回类型:
dictionary¶
optional¶
- onnx.numpy_helper.to_optional(optional: OptionalProto) Any | None [source]¶
将 optional def 转换为 Python 可选。
- 参数:
optional – OptionalProto 对象。
- 返回值:
转换后的可选值。
- 返回类型:
opt
tools¶
- onnx.numpy_helper.convert_endian(tensor: TensorProto) None [source]¶
调用以转换张量中原始数据的字节序。
- 参数:
tensor – 要转换的 TensorProto。
- 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。