【发布时间】:2018-04-14 19:59:49
【问题描述】:
我正在寻找一种可能性,可以使用 Python (h5py) 将数据附加到 .h5 文件中的现有数据集。
我的项目的简短介绍:我尝试使用医学图像数据训练 CNN。由于在将数据转换为 NumPy 数组的过程中数据量巨大且内存使用量很大,我需要将“转换”拆分为几个数据块:加载和预处理前 100 个医学图像并将 NumPy 数组保存到 hdf5文件,然后加载接下来的 100 个数据集并附加现有的 .h5 文件,依此类推。
现在,我尝试存储前 100 个转换后的 NumPy 数组,如下所示:
import h5py
from LoadIPV import LoadIPV
X_train_data, Y_train_data, X_test_data, Y_test_data = LoadIPV()
with h5py.File('.\PreprocessedData.h5', 'w') as hf:
hf.create_dataset("X_train", data=X_train_data, maxshape=(None, 512, 512, 9))
hf.create_dataset("X_test", data=X_test_data, maxshape=(None, 512, 512, 9))
hf.create_dataset("Y_train", data=Y_train_data, maxshape=(None, 512, 512, 1))
hf.create_dataset("Y_test", data=Y_test_data, maxshape=(None, 512, 512, 1))
可以看出,转换后的 NumPy 数组被分成四个不同的“组”,分别存储到四个 hdf5 数据集[X_train, X_test, Y_train, Y_test] 中。
LoadIPV() 函数执行医学图像数据的预处理。
我的问题是我想将接下来的 100 个 NumPy 数组存储到同一个 .h5 文件到现有数据集中:这意味着我想附加到,例如,形状的现有 X_train 数据集[100, 512, 512, 9] 和接下来的 100 个 NumPy 数组,这样 X_train 就变成了 [200, 512, 512, 9] 的形状。其他三个数据集 X_test、Y_train 和 Y_test 也应如此。
【问题讨论】:
标签: python numpy deep-learning hdf5 h5py