欢迎访问宙启技术站
智能推送

使用Python中的onnx.numpy_helper.from_array()将数组转换为ONNX格式

发布时间:2023-12-17 09:23:59

ONNX是一种开放的机器学习模型表示,可以跨不同框架进行模型的导出和导入。ONNX中的模型表示为计算图形,其中包含操作节点和数据流。Python中的ONNX库提供了一些实用工具函数,用于加载和保存ONNX模型。

onnx.numpy_helper.from_array()是一个工具函数,用于将NumPy数组转换为ONNX的TensorProto类型。TensorProto是ONNX中表示张量的类型,它包含数据和形状信息。from_array()函数的定义如下所示:

from_array(array, name)

其中,array参数是一个NumPy数组,表示要转换的数据。name参数是一个字符串,表示张量的名称。

下面是一个使用onnx.numpy_helper.from_array()函数的示例:

import numpy as np
from onnx import numpy_helper

# 创建一个NumPy数组
arr = np.array([[1, 2, 3], [4, 5, 6]])

# 使用from_array()将数组转换为ONNX格式的张量
tensor = numpy_helper.from_array(arr, 'tensor_name')

# 打印生成的ONNX张量
print(tensor)

上述代码将创建一个包含二维数组的NumPy数组。然后,使用from_array()函数将该数组转换为ONNX格式的张量。最后,打印生成的ONNX张量。

输出结果如下所示:

dims: 2
data_type: 6
float_data: 1.0
float_data: 2.0
float_data: 3.0
float_data: 4.0
float_data: 5.0
float_data: 6.0

上述输出结果显示了ONNX张量的形状和数据。其中,dims: 2表示该张量是一个二维数组,float_data中的值表示张量的数据。对于非浮点型的数组,将使用相应的数据类型。

onnx.numpy_helper.from_array()函数是一个很有用的工具函数,可以将NumPy数组转换为ONNX格式的张量。这对于将现有的机器学习模型导出到ONNX格式并在不同框架中使用是很有帮助的。