我有一个非常大的数据集,它是一个 npy 文件,其中包含大约 1.5m 个元素,每个元素都是 150x150x3 图像。输出有 51 列(51 个输出)。由于数据集无法装入内存,如何加载它并使用它来拟合模型?一种有效的方法是使用 TFRecords 和 tf.data 但我不明白如何做到这一点。我将不胜感激的帮助。谢谢。
一种方法是逐个片段加载 NPY 文件(为神经网络提供数据),而不是立即将其加载到内存中。您可以使用numpy.load
正常并指定mmap_mode
关键字,以便数组保留在磁盘上,并且在访问时仅将必要的位加载到内存中(更多详细信息here https://docs.scipy.org/doc/numpy/reference/generated/numpy.memmap.html#numpy.memmap)
numpy.load(file, mmap_mode=None, allow_pickle=False, fix_imports=True, encoding='ASCII')
内存映射文件用于访问磁盘上大文件的小片段,而不会将整个文件读入内存。 NumPy 的 memmap 是类似数组的对象。这与 Python 的 mmap 模块不同,后者使用类似文件的对象。
如果您想知道如何创建tfrecords
from a numpy
数组,然后读取tfrecords
使用数据集 API,这link https://stackoverflow.com/questions/45427637/numpy-to-tfrecords-is-there-a-more-simple-way-to-handle-batch-inputs-from-tfrec/45428167#45428167提供了一个很好的答案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)