【发布时间】:2017-10-09 00:26:20
【问题描述】:
我有一个不适合内存的MNIST 类数据集(进程内存,不是 gpu 内存)。
我的数据集是 4GB。
这不是TFLearn 问题。
据我所知,model.fit 需要一个 数组 用于 x 和 y。
TFLearn 示例:
model.fit(x, y, n_epoch=10, validation_set=(val_x, val_y))
我想知道是否有一种方法可以传递“批量迭代器”,而不是数组。 基本上对于每个批次,我都会从磁盘加载必要的数据。
这样我就不会遇到进程内存溢出错误。
编辑
np.memmap 可能是一个选项。但我不知道如何跳过组成标题的前几个字节。
【问题讨论】:
-
您可能需要使用一个队列来适当地设置批量大小和容量。
tf.train.shuffle_batch应该在这里工作。 -
使用 numpy.memmap 的 offset 参数,它接受从文件开头跳过的字节数。 Numpy.float32 == 4 字节,float64 == 8 字节等
标签: memory-management tensorflow out-of-memory tflearn