火车精度很高,但测试精度很差

时间:2018-11-09 13:23:54

标签: keras

我使用$ set $ env 来训练和测试我的模型。 训练时,准确率高达90%。
但是当我测试模型时,准确度仅为平均值(50%)。

这就是我使用ImageDataGenerator.flow_from_directory()的方式:

ImageDataGenerator

这是我训练和测试模型的方式:

datagen = ImageDataGenerator(rescale=1. / 255)

train_data = datagen.flow_from_directory(img_path + '\\train', target_size=(224, 224),
                                     classes=['NORMAL', 'PNEUMONIA'],
                                     batch_size=10)

test_data = datagen.flow_from_directory(img_path + '\\test', target_size=(224, 224),
                                    classes=['NORMAL', 'PNEUMONIA'],
                                    batch_size=10)

在测试模型时,我尝试将model.fit_generator(train_data, steps_per_epoch=32, epochs=100) test_info = model.evaluate_generator(test_data, steps=10) print(test_info) 替换为test_data。 但是结果是相同的。

1 个答案:

答案 0 :(得分:2)

您的模型似乎过度适合训练数据。您可以尝试一些防止它的方法,例如:

  • 早停
  • 正则化(辍学,L1 / L2正则化)

  • 交叉验证

  • 增加数据集(如果可能)

  • 降低架构复杂度