У меня есть два больших массива Numpy X и Y, которые я могу сохранить и загрузить в виде словаря. На самом деле я хочу передать эти данные в модель машинного обучения с использованием Keras.
Вот функции загрузки и сохранения:
def save_np_data(X, Y, file_path_prefix):
data = {'X': X, 'Y': Y}
file_name = file_path_prefix + '/data.npy'
np.save(file_name, data)
def load_np_data(file_path_prefix):
file_name = file_path_prefix + '/data.npy'
data = np.load(file_name)[()]
return data
На самом деле, я столкнулся с проблемой при обучении модели, потому что у меня всегда не хватает памяти. Итак, я переключился на fit_generator вместо типичной функции fit.
Моя цель состоит в постепенном разборе файла data.npy (чтение только одного пакета из файла за один раз).
А вот функция batch_generator:
def batch_generator(X, Y, batch_size):
number_of_batches = np.ceil(X.shape[0]/batch_size) #ceil function allows for creating last batch off remaining samples
counter = 0
sample_index = np.arange(X.shape[0])
while True:
batch_index = sample_index[batch_size*counter:batch_size*(counter+1)]
X_batch = X[batch_index,:]
Y_batch = Y[batch_index,:]
counter += 1
yield X_batch, Y_batch
if (counter == number_of_batches):
counter = 0
Не могли бы вы помочь.