优草派  >   Python

在keras中model.fit_generator()和model.fit()的区别说明

杨梦琪            来源:优草派

在keras中,model.fit_generator()和model.fit()是用于训练模型的两个常用函数。这两个函数之间存在着很多的区别。

在keras中model.fit_generator()和model.fit()的区别说明

一、数据读取格式不同:

model.fit()需要将训练集预处理成一个Numpy array,然后将其塞进内存中,这相比逐个batch读取会非常消耗内存。而对于model.fit_generator()来说,可以通过生成器一个一个地读取数据,因而可以避免大量的内存使用。

二、数据读取的位置不同:

model.fit()读取的是放在内存里的数据,而model.fit_generator()读取的是放在磁盘上或内存里的数据。model.fit_generator()仅读取一个batch的数据,处理完成后再读取下一个batch。

三、适用范围不同:

model.fit()适用于小型的数据集,而model.fit_generator()适用于较大型的数据集,如使用ImageDataGenerator从文件夹中生成数据训练模型时。

四、可以进行数据增强

由于 model.fit_generator 能让我们使用大量的数据集,也就可以更加充分的扩大数据的数量,进而扩大模型的泛华能力,所以更常用于数据量较大时,并在数据加载的同时,对数据进行扩充,生成更多的样本数据,并将这些数据作为训练数据,是模型达到更好效果的重要方法。

总体而言,model.fit()适合小系统出来的数据集,model.fit_generator()适合于数据量很大而且不可能一次性加载进内存中的数据集。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。