Одна партия на ходу - PullRequest
0 голосов
/ 05 июля 2018

У меня есть два больших массива 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

Не могли бы вы помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...