Keras和Scikit学习指标之间的巨大差异

问题描述

我正在使用Keras和ImageDataGenerator训练CNN。训练和验证准确性令人满意,测试准确性也令人满意。但是,当我使用Scikit-learn为测试数据生成混淆矩阵时,即使第二天我在相同数据上获得了更好的结果,性能也会大大下降。我尝试过重新训练模型,但仍得到相同的结果。任何帮助表示赞赏。

发电机

train_image_gen = ImageDataGenerator()
train_gen = train_image_gen.flow_from_directory('use_data/train/',target_size=(100,100),class_mode='categorical')

test_image_gen = ImageDataGenerator()
test_gen = test_image_gen.flow_from_directory('use_data/test/',class_mode='categorical')

val_image_gen = ImageDataGenerator()
val_gen = test_image_gen.flow_from_directory('use_data/val/',class_mode='categorical')

模型

i = Input(shape=(100,100,3))
x = Conv2D(filters=64,kernel_size=(3,3),activation='relu')(i)
x = Conv2D(filters=64,activation='relu')(x)
x = MaxPool2D(pool_size=(2,2))(x)
x = Conv2D(filters=64,activation='relu')(x)
x = Conv2D(filters=64,2))(x)

x = Flatten()(x)

x = Dropout(rate=0.2)(x)
x = Dense(units=128,activation='relu')(x)
x = Dropout(rate=0.25)(x)
x = Dense(units=33,activation='softmax')(x)

model = Model(inputs=i,outputs=x)

model.compile(optimizer=Adam(lr=0.001),loss='categorical_crossentropy',metrics=['accuracy'])

Keras Performance

enter image description here

分类报告代码

y_test = test_gen.classes
first_test_preds = model.predict_generator(test_gen)
y_pred = np.argmax(first_test_preds,axis=-1)

分类报告

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)