问题描述
我正在使用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'])
y_test = test_gen.classes
first_test_preds = model.predict_generator(test_gen)
y_pred = np.argmax(first_test_preds,axis=-1)
分类报告
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)