首页 > 解决方案 > 模型的训练、验证和测试精度都很好。但是所有对测试图像的预测结果都属于 0 类?

问题描述

我正在创建一个分类器来识别属于特定类的图像。我已经使用 ResNet50 的迁移学习来构建我的模型。我已经冻结了所有图层并添加了最后一层。类的总数为 5。但所有测试图像都给出属于 0 类的预测。我在训练前对训练和验证数据执行数据增强。

base_model = ResNet50(weights='imagenet',include_top=False, input_shape = (img_width, img_height, 3)) 
 # Top Model Block    
u = base_model.output
u = GlobalAveragePooling2D()(u)
u = Dense(256, activation='relu', name='fc1')(u)
u = Dropout(0.5)(u)
predictions = Dense(nb_classes, activation='softmax', name='predictions')(u)

#freezing the layers
for layer in base_model.layers:
    layer.trainable = False
#augmenting the train and validation data
train_datagen = ImageDataGenerator(rescale=1. / 255,

                              rotation_range=transformation_ratio,
                               shear_range=transformation_ratio,
                               zoom_range=transformation_ratio,
                               cval=transformation_ratio,
                               horizontal_flip=True,
                               vertical_flip=True)

validation_datagen = ImageDataGenerator(rescale=1. / 255)

#prediction report
predicted1 = model.predict(x1_test)

result: array([0, 0, 0, ..., 0, 0, 0])

我的训练准确率为 72.9%,测试准确率为 72.6% 注意:时期数 = 10

请告诉我我哪里出错了!提前致谢。

标签: pythonkeras

解决方案


推荐阅读