我在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切片。这对我有用,因为随后的培训仅在较小的范围内起作用。但是我想知道是否还有更好的方法可以让我做到这一点,甚至不需要将整个数据集都保留在内存中。