使用回归输出处理张量流中的大型 numpy 数组(51 个输出)

2024-02-22

我有一个非常大的数据集,它是一个 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(使用前将#替换为@)

使用回归输出处理张量流中的大型 numpy 数组(51 个输出) 的相关文章

随机推荐