微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决使用 Keras/Tensorflow 数据加载器高效加载大型 .npy 文件>20GB

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

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

是否有更有效的方法使用 Keras/Tensorflow(这是我用来编写模型的代码)? 不幸的是,我找不到太多关于允许我执行此操作的数据加载器的信息。

提前致谢。

解决方法

您有多种选择可以做到这一点。

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。