目录
- 1 作用与区别
- 2 解析与使用
- 2.1 keras.fit()
- (1)参数介绍
- (2)举例使用
- (3)原理讲解
- 2.2 keras.fit_generator()
- (1)参数介绍
- (2)举例使用
- (3)原理解析
1 作用与区别
作用: 用于训练神经网络模型,两者可以完成相同的任务
区别:
.fit()时使用的整个训练数据集可以放入内存,并没有应用数据增强,就是.fit()无需使用Keras生成器(即无需数据参数)
当我们有一个巨大的数据集可容纳到我们的内存中或需要应用数据扩充时,将使用.fit_generator()。就是需要使用Keras生成器去扩充数据等等操作。
2 解析与使用
2.1 keras.fit()
(1)参数介绍
(2)举例使用
我们首先输入训练数据(Xtrain)和训练标签(Ytrain)。然后,我们使用Keras允许我们的模型以batch_size为32训练100个epoch。
(3)原理讲解
当我们调用.fit()函数时,它会做一些假设:
- 整个训练集可以放入计算机的随机存取存储器(RAM)中。
- 调用模型。fit方法第二次不会重新初始化我们已经训练好的权重,这意味着如果需要,我们实际上可连续调用fit以进行调整。
- 无需使用Keras生成器(即无需数据参数)
- 原始数据本身就是用于训练我们的网络的,而我们的原始数据只能放入内存中
2.2 keras.fit_generator()
(1)参数介绍
(2)举例使用
数据增强 是一种从现有训练数据集中人为创建新数据集进行训练的方法,以利用可用数据量来提高深度学习神经网络的性能。这是一种正则化形式,使我们的模型比以前更好地推广。
在这里,我们使用Keras ImageDataGenerator对象将数据增强应用于图像的随机平移,调整大小,旋转等。每一批新数据都会根据提供给ImageDataGenerator的参数进行随机调整。
网络训练10个epoch,默认batch大小为32。
对于较小和较不复杂的数据集,建议使用keras.fit函数,而在处理实际数据集时,并不是那么简单,因为实际数据集的大小很大,很难放入计算机内存中。
处理这些数据集更具挑战性,处理这些数据集的重要步骤是执行数据扩充,以避免模型的过拟合,并提高模型的泛化能力。
(3)原理解析
当调用.fit_generator()函数时,它会做一些假设:
- Keras首先调用了生成器函数(dataAugmentaion)
- 生成器函数为.fit_generator()函数提供了32的batch_size。
- .fit_generator()函数首先接受一批数据集,然后对其进行反向传播,然后更新模型中的权重。
- 对于指定的epoch数(在本例中为10),将重复此过程。