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

问题描述 投票:1回答:1

我有一个非常大的数据集,它是一个单独的npy文件,其中包含约1.5m个元素,每个元素为150x150x3图像。输出具有51列(51个输出)。由于数据集无法放入内存,如何加载它并使用它来拟合模型?一种有效的方法是使用TFRecords和tf.data,但我不知道该怎么做。我会很感激的。谢谢。

python tensorflow deep-learning tensorflow-datasets
1个回答
1
投票

一种方法是逐段加载NPY文件(以向神经网络提供数据),而不是一次将其加载到内存中。您可以照常使用numpy.load并指定mmap_mode关键字,以便将阵列保存在磁盘上,并且在访问时仅将必要的位加载到内存中(更多详细信息here

numpy.load(file, mmap_mode=None, allow_pickle=False, fix_imports=True, encoding='ASCII')

内存映射文件用于访问磁盘上大文件的小片段,而无需将整个文件读入内存。 NumPy的记忆图是类似数组的对象。这与Python的mmap模块不同,后者使用类似文件的对象。

如果您想知道如何从tfrecords数组创建numpy,然后使用数据集API读取tfrecords,则此link提供了一个很好的答案。

© www.soinside.com 2019 - 2024. All rights reserved.