数据集不适合内存

red*_*edb 5 memory-management out-of-memory tensorflow tflearn

我有一个MNIST类似的数据集,不适合内存(进程内存,而不是 GPU内存)。我的数据集是 4GB。

这不是TFLearn问题。

据我所知,和需要model.fit一个数组xy

TFLearn 示例:

model.fit(x, y, n_epoch=10, validation_set=(val_x, val_y))

我想知道是否有一种方法可以传递“批量迭代器”,而不是数组。基本上对于每个批次,我都会从磁盘加载必要的数据。

这样我就不会遇到进程内存溢出错误。

编辑 np.memmap可能是一种选择。但我不知道如何跳过组成标头的前几个字节。

mic*_*rer 4

您可以使用数据集 api

“Dataset API 支持多种文件格式,以便您可以处理内存无法容纳的大型数据集”

基本上,输入管道将成为图表的一部分。

如果内存仍然是一个问题,那么您可以使用生成器来创建您的tf.data.Dataset. 此外,您可以通过准备 tfrecords 来创建数据集,从而加快该过程。