我有一个非常大的数据集,它是一个单个的npy文件,其中包含约1.5m个元素,每个元素为150x150x3图像。输出具有51列(51个输出)。由于数据集无法放入内存,如何加载它并使用它来拟合模型?一种有效的方法是使用TFRecords和tf.data,但我不知道该怎么做。我会很感激的。谢谢。
一种方法是逐个片段加载NPY文件(用它来馈入神经网络),而不是一次将其加载到内存中。您可以numpy.load
像往常一样使用并指定mmap_mode
关键字,以便将数组保留在磁盘上,并且仅在访问时将必要的位加载到内存中(此处有更多详细信息)
numpy.load(file, mmap_mode=None, allow_pickle=False, fix_imports=True, encoding='ASCII')
内存映射文件用于访问磁盘上大文件的小片段,而无需将整个文件读入内存。NumPy的memmap是类似数组的对象。这与Python的mmap模块不同,后者使用类似文件的对象。
如果您想知道如何tfrecords
从numpy
数组创建一个,然后tfrecords
使用Dataset API阅读,则此链接提供了一个很好的答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句