Keras 训练精度很高,但测试精度很差

Keras 训练精度很高,但测试精度很差,keras,Keras,我使用ImageDataGenerator.flow\u from\u directory()来训练和测试我的模型。 训练时,准确率高达90%。 但当我测试我的模型时,准确率只是平均值(50%) 这就是我如何使用ImageDataGenerator: datagen = ImageDataGenerator(rescale=1. / 255) train_data = datagen.flow_from_directory(img_path + '\\train', target_size=(

我使用
ImageDataGenerator.flow\u from\u directory()
来训练和测试我的模型。 训练时,准确率高达90%。
但当我测试我的模型时,准确率只是平均值(50%)

这就是我如何使用
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)
在测试模型时,我尝试用
train\u data
替换
test\u data

但是结果是一样的。

看起来您的模型与训练数据拟合过度。您可以尝试一些方法来防止它,如:

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

  • 交叉验证

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

  • 降低体系结构复杂性


我使用提前停车来避免过度装配,这很有效。非常感谢。