Python 如何在keras中使用model.fit_生成器

Python 如何在keras中使用model.fit_生成器,python,deep-learning,Python,Deep Learning,何时以及如何使用fit_generator? fit和fit_generator之间有什么区别?如果您在所有必要的方面都准备好了数据和标签,并且可以简单地将它们分配给数组x和y,那么就可以使用model.fit(x,y) 如果您需要在培训期间对数据进行预处理和/或扩充,那么您可以利用Keras提供的生成器 例如,您可以通过应用随机变换(如果您只有很少的数据可供训练时非常有用)、填充序列、标记文本、让Keras自动从文件夹读取您的数据并分配适当的类(flow_from_directory)等来增强

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

如果您在所有必要的方面都准备好了数据和标签,并且可以简单地将它们分配给数组x和y,那么就可以使用model.fit(x,y)

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

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

有关图像预处理的示例和样板代码,请参见此处:

或在此处进行文本预处理:


fit_generator还将帮助您以更高效的方式进行训练,因为您仅在需要时加载数据。generator函数可根据需要将数据一批一批地发送到您的模型中。

它们对于前一张海报中提到的动态增强非常有用。然而,这并不一定局限于生成器,因为您可以适应一个时代,然后增加数据并再次适应

但是,fit不起作用的是,每个历元使用的数据太多。这意味着,如果您有一个1 TB的数据集,并且只有8 GB的RAM,那么您可以使用生成器动态加载数据,并且只在内存中保存几个批。这对扩展到大型数据集有很大帮助