如何在keras中使用model.fit_generator

时间:2017-06-16 20:33:39

标签: python deep-learning

何时以及如何使用fit_generator? fit和fit_generator有什么区别?

2 个答案:

答案 0 :(得分:3)

如果您已准备好所有必要方面的数据和标签,只需将这些数据和标签分配给数组x和y,而不是使用model.fit(x,y)。

如果您需要预处理和/或扩充数据培训,那么您可以利用Keras提供的生成器。

例如,您可以通过应用随机变换来增强图像(如果您只有很少的数据可以训练,非常有用),填充序列,标记化文本,让Keras自动从文件夹中读取数据并分配适当的类(flow_from_directory)和更多。

请参阅此处查看图像预处理的示例和样板代码:https://keras.io/preprocessing/image/

或此处用于文本预处理: https://keras.io/preprocessing/text/

fit_generator还将帮助您以更高效的内存方式进行训练,因为您只在需要时加载数据。生成器函数按需批量生成(也称为#34;传送")数据到您的模型批次,所以说。

答案 1 :(得分:2)

它们对于实时增强非常有用,前一张海报提到过。然而,这并不一定只限于生成器,因为您可以适应一个纪元,然后再增加数据并再次适合。

不合适的是每个时期使用过多的数据。这意味着如果您拥有1 TB的数据集且只有8 GB的RAM,您可以使用生成器即时加载数据,并且只在内存中保留几个批次。这有助于扩展到大型数据集。