何时以及如何使用fit_generator? fit和fit_generator有什么区别?
答案 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,您可以使用生成器即时加载数据,并且只在内存中保留几个批次。这有助于扩展到大型数据集。