У меня очень и очень большой набор данных в 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.Это работает для меня, так как впоследствии обучение работало только на меньшем наборе.Но мне интересно, есть ли еще лучший способ позволить мне сделать это, даже не сохраняя полный набор данных в памяти вообще.