我有一个不适合内存的MNIST
数据集,(进程内存,不是gpu 内存)。
我的数据集是4GB。
这不是TFLearn
问题。
据我所知model.fit
x
和y
需要数组。
TFLearn示例:
model.fit(x, y, n_epoch=10, validation_set=(val_x, val_y))
我想知道是否有一种方法可以传递“批处理迭代器”而不是数组。 基本上对于每个批次,我都会从磁盘加载必要的数据。
这样我就不会遇到进程内存溢出错误。
修改
np.memmap
可以是一种选择。但是我没有看到如何跳过组成标题的前几个字节。
答案 0 :(得分:1)
您可以使用Dataset api。
“ Dataset API支持多种文件格式,因此您可以处理内存中不适合的大型数据集”
基本上,输入管道将成为图形的一部分。
如果仍然存在内存问题,则可以使用生成器来创建tf.data.Dataset
。此外,您可以通过准备tfrecords来创建数据集来加快该过程。