我有一个非常大的数据集:7.9 GB的CSV文件。其中80%将用作训练数据,其余20%将用作测试数据。当我加载训练数据(6.2 GB)时,在第80次迭代(第80个文件)时出现了MemoryError
。这是我用来加载数据的脚本:
这6.2 GB的CSV文件共有130个文件。
回答:
对于大型数据集——我们已经可以将6.2GB视为大型数据集——一次性读取所有数据可能不是最好的方法。因为您无论如何都是按批次训练网络的,所以只需加载接下来要使用的批次所需的数据就足够了。
TensorFlow文档提供了关于如何实现数据读取管道的良好概述。根据链接的文档,阶段包括:
- 文件名列表
- 可选的文件名洗牌
- 可选的epoch限制
- 文件名队列
- 文件格式的读取器
- 读取器读取记录的解码器
- 可选的预处理
- 示例队列