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正则化)
- 交叉验证
- 增加数据集(如果可能)
- 降低体系结构复杂性