Обучение модели ANN Keras (на основе Tensorflow) для нескольких файлов h5 - PullRequest
1 голос
/ 15 мая 2019

У меня есть 600 файлов (~ 400 МБ каждый, всего ~ 235 ГБ) обучающих данных в формате "h5".Все файлы содержат массивы с номерами, где количество столбцов одинаковое, но количество строк может быть разным.

У меня есть опыт загрузки одного файла и обучения на нем (код показан ниже),но как загрузить данные из такого количества файлов, перемешать их и обучить модели?


def load_dataset():
    """
    simply loading dataset 
    """    
    print("Start time of loading data: " + str(datetime.datetime.now())+"\n\n")

    train_dataset = h5py.File('datasets/data.h5', "r")

    data = np.array(train_dataset["data"][:]) 
    # Later in the code, "data" will be split into 
    # X_train and Y_train, e.g. in the comments below

    # Split data into X_train and Y_train
    # X_train_orig = data[:, :5].reshape(data.shape[0],5) 
    # Y_train_orig = data[:, -4].reshape(data.shape[0],1)

    print("End time of loading data: " + str(datetime.datetime.now())+"\n")
    print("Load data: complete\n")

    return data 

1 Ответ

0 голосов
/ 15 мая 2019

Если все точки данных в каждом файле независимы и одинаково распределены (IID), и если каждый файл имеет хорошее представление всех классов (то есть не сильно смещено в сторону одного класса), то загрузите один файл, перемешайте его содержимое и продолжайтеЗатем перейдите к следующему файлу и вскоре дальше.Когда вы закончите с последним файлом, повторите, пока оценка проверки улучшается.

Например, Word2vec обучается огромным данным, но полные данные никогда не загружаются в память.Всего пара эпох на полных данных сходится с обучением, так должно быть и в вашем случае.

...