使用 Keras/Tensorflow 数据加载器高效加载大型 .npy 文件(>20GB)

Efficiently load large .npy files (>20GB) with Keras/Tensorflow dataloader

我目前正在实施一个机器学习模型,该模型使用相当大量的数据表示。 我的数据集由图像组成。这些图像中的每一个都被编码成一个 (224, 224, 103) 矩阵,使得整个数据集非常重。我将这些矩阵存储在磁盘上并在训练期间加载它们。

我现在正在做的是使用 8 张图像的小批量 并在整个训练过程中从磁盘加载这 8 张图像的 .npy 文件过程。这很慢但有效。

是否有使用 Keras/Tensorflow 的更有效的方法(这是我用来编写模型的方法)? 不幸的是,我找不到太多关于允许我这样做的数据加载器。

提前致谢。

您有多种选择。

我假设您为获得最终 (224, 224, 103) 矩阵而对图像进行的转换非常昂贵,并且不希望对数据加载进行预处理。如果不是这种情况,您可能会从阅读 the tutorial relevant to image processing.

中受益

我建议您使用 python 生成器读取数据,并使用 tf.data 创建数据管道以将这些 .npy 文件提供给您的模型。基本思想非常简单。您使用包装器从生成器中摄取数据,生成器将根据需要读取文件。相关文档和例子是here.

现在,一旦你开始工作,我认为 optimize 你的管道是个好主意,特别是如果你计划在多个 GPU 或多台计算机上进行训练。