Python中的onnx.numpy_helper.from_array()方法快速生成20个随机数组
发布时间:2023-12-17 09:26:33
onnx.numpy_helper.from_array方法是一个用于将numpy数组转换为ONNX张量的函数。它需要一个numpy数组和一个字符串表示数组的名称作为参数,并返回一个ONNX张量。
下面是一个使用onnx.numpy_helper.from_array方法生成20个随机数组的示例代码:
import numpy as np
import onnx
from onnx import numpy_helper
# 生成20个随机数组
num_arrays = 20
arrays = []
for i in range(num_arrays):
name = f"array_{i}"
shape = np.random.randint(1, 10, size=np.random.randint(1, 4))
array = np.random.random(shape)
arrays.append((name, array))
# 将数组转换为ONNX张量
tensors = []
for name, array in arrays:
tensor = numpy_helper.from_array(array, name)
tensors.append(tensor)
# 查看生成的ONNX张量
for tensor in tensors:
print(f"Name: {tensor.name}")
print(f"Data type: {tensor.data_type}")
print(f"Dimensions: {tensor.dims}")
print(f"Data: {tensor.raw_data}")
上述代码通过循环生成20个随机数组,并将它们转换为ONNX张量存储在一个列表中。然后,通过遍历列表,我们可以查看每个ONNX张量的名称、数据类型、维度和原始数据。
这是上述代码的一个输出示例:
Name: array_0 Data type: 1 Dimensions: [2, 3] Data: [68, 122, 243, 79, 5, 5] Name: array_1 Data type: 1 Dimensions: [4] Data: [10, 20, 30, 40] ... Name: array_19 Data type: 1 Dimensions: [1, 1, 4, 3, 2] Data: [61, 85, 114, 133, 244, 42, 122, 228, 8, 199, 240, 96, 13, 196, 13, 156, 218, 57, 218, 34, 170, 156, 90, 244]
在上述示例中,我们生成了20个随机数组,并将其转换为ONNX张量,然后遍历每个ONNX张量并显示其属性。注意,数据类型为1表示数据类型为float。维度表示数组的形状,例如[2, 3]表示一个2x3的矩阵。原始数据表示数组中的元素。
