如何从h5py数据集中有效地随机选择数据子集

时间:2018-11-18 22:02:40

标签: python numpy h5py

我在h5py中有一个非常大的数据集,这在完全加载和后续处理时会导致内存问题。我需要随机选择一个子集并使用它。这在机器学习的上下文中正在“增强”。

dataset = h5py.File(h5_file, 'r')

train_set_x_all = dataset['train_set_x'][:]
train_set_y_all = dataset['train_set_y'][:]

dataset.close()

p = np.random.permutation(len(train_set_x_all))[:2000]   # rand select 2000
train_set_x = train_set_x_all[p]   
train_set_y = train_set_y_all[p]

我仍然仍然需要获取全套并将其与索引数组p切片。这对我有用,因为随后的培训仅在较小的范围内起作用。但是我想知道是否还有更好的方法可以让我做到这一点,甚至不需要将整个数据集都保留在内存中。

0 个答案:

没有答案