我有600份训练数据文件(每个约400 MB,总计约235 GB),格式为“ 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
答案 0 :(得分:0)
如果每个文件中的所有数据点都是独立且分布均匀的(IID),并且每个文件都具有所有类的良好表示(即,不偏重于一个类),则加载一个文件,将其内容改组并继续训练然后进入下一个文件,并很快进行。完成最后一个文件后,只要验证分数不断提高,就重复一次。
例如,Word2vec在海量数据数据上受过训练,但完整数据从未加载到内存中。只需几个完整数据的纪元就可以使培训收敛,因此您的情况也应如此。