gpt4 book ai didi

python-2.7 - 如何存储许多大型多维数组?

转载 作者:行者123 更新时间:2023-12-04 00:57:17 25 4
gpt4 key购买 nike

我有一个深度学习模型,它生成一个大小为 2x2x4096 的输出多维数组。然后每个输入图像有 40,000 个这样的输出。如何在 python 中执行此操作?Hdf5 格式似乎是一个有趣的方向。

有人能指出我正确的方向吗?

最佳答案

我建议将 HDF5 与 PyTables 一起使用.将数组放入文件就像这样简单:

import numpy as np
import tables

a = np.arange(100)
h5_file = tables.open_file('my_array.h5', mode='w', titel='many large arrays')
h5_file.create_array('/', 'my_array', a)
h5_file.close()

10 个多维数组的示例:

import numpy as np
import tables

my_arrays = [np.ones((2, 2, 4098)) for x in range(10)]

h5_file = tables.open_file('my_array.h5', mode='w', titel='many large arrays')

for n, arr in enumerate(my_arrays):
h5_file.create_array('/', 'my_array{}'.format(n), arr)
h5_file.close()

使用h5ls 查看文件结构:

h5ls my_array.h5
my_array0 Dataset {2, 2, 4098}
my_array1 Dataset {2, 2, 4098}
my_array2 Dataset {2, 2, 4098}
my_array3 Dataset {2, 2, 4098}
my_array4 Dataset {2, 2, 4098}
my_array5 Dataset {2, 2, 4098}
my_array6 Dataset {2, 2, 4098}
my_array7 Dataset {2, 2, 4098}
my_array8 Dataset {2, 2, 4098}
my_array9 Dataset {2, 2, 4098}

读回数据很容易。

阅读全部:

import tables

h5_file = tables.open_file('my_arrays.h5', mode='r')

for node in h5_file:

print(node)

输出:

/ (RootGroup) ''
/my_array0 (Array(2, 2, 4098)) ''
/my_array1 (Array(2, 2, 4098)) ''
/my_array2 (Array(2, 2, 4098)) ''
/my_array3 (Array(2, 2, 4098)) ''
/my_array4 (Array(2, 2, 4098)) ''
/my_array5 (Array(2, 2, 4098)) ''
/my_array6 (Array(2, 2, 4098)) ''
/my_array7 (Array(2, 2, 4098)) ''
/my_array8 (Array(2, 2, 4098)) ''
/my_array9 (Array(2, 2, 4098)) ''

或者只是一个名字:

print(h5_file.root.my_array0)

输出:

/my_array0 (Array(2, 2, 4098)) ''

关于python-2.7 - 如何存储许多大型多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41740504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com