【发布时间】:2019-01-07 15:35:11
【问题描述】:
我正在使用 keras 训练神经网络,并希望通过多处理加快我的预处理/数据增强。原则上,fit_generator 中的 workers=N 和 use_multiprocessing=True 看起来很简单,但在我的情况下,要避免从并行生成器中获取类似数据是很棘手的。
我的数据位于多个文件中,每个文件都有几百万条记录(直到文件末尾才知道总数)。对于每个文件,生成器逐条记录,将记录处理为网络的正确输入/输出格式,并进行一些数据增强。没有唯一的 ID,但我想我可以即时创建一个。
我想知道是否有多个并行生成器最简单,每个生成器处理单独的文件列表。我实际上并没有批量使用所有数据,因此如果一个生成器在其文件列表的开头重新启动,而不是在其他生成器之前重新启动,这并不重要。如果在生成器中我可以访问诸如工人编号(1 到 N)之类的东西,那将很容易做到。
【问题讨论】:
-
您的数据是
TFRecords,还是纯文本文件? -
文本。我的生成器进行数据扩充 + 将其编码为 numpy 数组。
标签: python keras multiprocessing generator