Keras fit_generator仅对数据扩充或从磁盘读取(/ network)有用

时间:2018-02-21 10:34:05

标签: keras bigdata

数据可能不适合GPU内存(包括激活和渐变),其中一个使用迷你批次,并且它可能不适合RAM,其中一个使用fit_generator。或者至少,后者是我想在此验证的假设。

Keras是否应用生产者 - 消费者策略首先将生成器的生成元素加载到RAM中(直到(或不)queue_size填充,然后每当批次弹出时继续填充它训练网络?该文档提到,这对于使用CPU进行数据扩充和使用GPU进行培训非常有用。使用这种生产者 - 消费者并行性的用例是将数据从磁盘加载到RAM中,因为它不能同时适用于RAM,也是有效的吗?我的数据有100k CT扫描,显然不适合RAM。

总结一下,fit_generator仅用于并行化数据预处理和培训,还是(合理地)用于并行化数据加载(到RAM)和培训?或者后者就像用锤子在墙上拧螺丝一样?

1 个答案:

答案 0 :(得分:0)

是的,您可以使用它来并行化数据加载,这是常见的用例之一,例如在使用ImageNet大小的数据集进行培训时。

但请注意,如果你并行化太多(工人太多),那么IO通常会成为瓶颈。