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



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

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

有没有一种更有效的方法可以使用Keras/Tensorflow(我正在用它来编码我的模型(来实现这一点?不幸的是,我找不到太多可以让我这样做的数据加载器。

提前谢谢。

您有多种选择。

我假设您对图像进行转换以获得最终的(224, 224, 103)矩阵是非常昂贵的,并且不希望对数据加载进行预处理。如果不是这样,您可能会从阅读与图像处理相关的教程中受益。

我建议您使用python生成器来读取数据,并使用tf.data创建一个数据管道,将这些.npy文件提供给您的模型。基本思想很简单。使用包装器从生成器中获取数据,生成器将根据需要读取文件。此处提供了相关文档和示例。

现在,一旦你做到了这一点,我认为优化你的管道是个好主意,尤其是如果你计划在多个GPU或多台计算机中进行训练。

最新更新