我正在做一个人脸识别的深度学习项目。我正在使用预训练模型 VGG16。
数据集有大约 100 个类,每个类有 80 张图像。我将数据集拆分为 60% 的训练、20% 的验证、20% 的测试。我使用数据增强 ( ImageDataGenerator()
) 来增加训练数据。
当我改变ImageDataGenerator()
论点时,模型给了我不同的结果。请参阅以下案例:
情况1:
train_datagen = ImageDataGenerator(
rotation_range=15,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
fill_mode='nearest')
validate_datagen = ImageDataGenerator()
Test_datagen = ImageDataGenerator()
Case1 结果:训练准确率和验证准确率高,但训练准确率较低。检查下图:
案例2:
train_datagen = ImageDataGenerator(
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
validate_datagen = ImageDataGenerator()
Test_datagen = ImageDataGenerator()
案例3:
train_datagen = ImageDataGenerator(
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
validate_datagen = ImageDataGenerator(rescale=1./255)
Test_datagen = ImageDataGenerator(rescale=1./255)
Case3 结果:训练准确率和验证准确率高,但训练准确率较低。查看下图:
1- 为什么ImageDataGenerator(rescale=1./255)
在 case3 中使用增强验证和测试数据会产生与 case2 不同的结果?
2-添加ImageDataGenerator(rescale=1./255)
测试和验证比不添加更好吗?
3-您认为第一个案例的结果有问题吗?