如何解决使用 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 举报,一经查实,本站将立刻删除。