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