python - 在多个 h5 文件上训练 ANN Keras(基于 Tensorflow)模型

标签 python python-3.x tensorflow keras h5py

我有 600 个格式为“h5”的训练数据文件(每个文件约 400 MB,总计约 235 GB)。所有文件都包含带有数字的数组,其中列数相同,但行数可能不同。

我有加载一个文件并对其进行训练的经验(代码如下所示),但是如何从这么多文件中加载数据,对它们进行洗牌并训练模型?


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 

最佳答案

如果每个文件中的所有数据点都是独立同分布(IID),并且每个文件都能很好地表示所有类(即不严重偏向某一类),则加载一个文件,洗牌其内容并进行训练然后它继续处理下一个文件,很快就会继续。完成最后一个文件后,只要验证分数有所提高,就重复此操作。

例如,Word2vec 是在大量数据上进行训练的,但完整的数据永远不会加载到内存中。只需几个时期的完整数据即可收敛训练,因此您的情况也应该如此。

关于python - 在多个 h5 文件上训练 ANN Keras(基于 Tensorflow)模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56152820/

相关文章:

python - 使用tensorflow 2进行模型子类化时出现ValueError

python - 每天运行 python 脚本的最佳方式是什么?

python - queue_draw_area 具有特定的处理程序?

python - 我想知道我关于使用 keras 实现 lstm 层是否正确

Python - 有效地查找列表中的元素

python - 没有模型的 TensorFlow 恢复/部署网络?

python-3.x - 做了一些预处理后去噪,怎么会失败呢? (使用 Python 的 OpenCV)

python - 根据收到的字典信息动态写入文本文件

django - dreamhost python3 Django乘客设置导入Cookie

python - Cuda 错误消息 : F ./tensorflow/core/util/cuda_launch_config.h :127] Check failed: work_element_count > 0 (0 vs. 0)