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

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的矩阵。原始数据表示数组中的元素。