python - 模型的训练、验证和测试精度都很好。但是所有对测试图像的预测结果都属于 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
请告诉我我哪里出错了!提前致谢。
解决方案
推荐阅读
- javascript - 无法读取 ReactJs 中未定义的属性“setState”
- java - 使用特定运行 .jar。小路
- r - 如何从函数内将扰乱图保存为图像文件?
- python - For-loop、append 和 += 递增运算符
- java - 从泛型类的集合中进行类型安全的检索
- node.js - React & Node.js 获取基本授权
- arrays - 如何使用scanf获取整数和字符串输入?
- python - 如何混合使用 tensorflow keras 模型和转换器
- python - 创建“类”时ipython中的语法错误
- arrays - C - 如何对数组中的错误元素进行排序