You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ImageDataGenerator时皮肤病分类CNN模型准确率骤降

皮肤病分类任务:数据增强后准确率下降的问题修复

核心问题分析

你的问题主要由三个关键因素导致:

  • 重复归一化:预处理阶段已将图像归一化到[0,1],但ImageDataGenerator又添加了rescale=1./255,导致数据被二次缩放至[0, 1/255²],数值范围过小,模型难以学习有效特征。
  • 过度数据增强:200张图像属于极小数据集,当前设置的增强参数(旋转30度、剪切0.3、缩放0.3、位移0.4)强度过高,会破坏皮肤病病灶的关键形态特征,生成的增强样本与原数据差异过大,模型无法捕捉到分类所需的核心信息。
  • 训练策略不匹配:学习率1e-5过低,结合增强后的数据量,模型收敛速度过慢;同时验证集与训练集的预处理逻辑不一致,进一步加剧了性能下降。

具体修复步骤

1. 移除重复归一化操作

删除ImageDataGenerator中的rescale=1./255参数,因为X_train已经在预处理阶段完成了归一化:

datagen = ImageDataGenerator(
    rotation_range=15,
    shear_range=0.1,
    zoom_range=0.1,
    width_shift_range=0.15,
    height_shift_range=0.15,
    horizontal_flip=True,
    fill_mode='nearest'
)

2. 降低数据增强强度

针对极小数据集,调整增强参数至温和范围,避免破坏原图像的关键特征:

  • 旋转范围从30度降至15度
  • 剪切、缩放范围从0.3降至0.1
  • 位移范围从0.4降至0.15

3. 优化训练参数

  • 提高学习率至1e-4,加快模型在增强数据上的收敛速度
  • 减小batch_size至8或16,让模型在小数据集下能接触到更多样的样本组合
  • 确保训练与验证数据的预处理逻辑一致(验证集已完成归一化,无需额外处理)

修改后的训练代码:

from tensorflow.keras.optimizers import Adam

# 调整学习率
optimizer = Adam(learning_rate=0.0001, name='Adam')
model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])

# 调整batch_size并添加回调
history5 = model.fit(
    datagen.flow(X_train, y_train, batch_size=8),
    epochs=epochs,
    validation_data=(X_val, y_val),
    callbacks=[es_callback, checkpoint]
)

4. 引入迁移学习(推荐)

针对200张的极小数据集,从头训练CNN的效果有限,建议使用预训练模型做迁移学习,利用已学到的通用图像特征提升分类性能:

from tensorflow.keras.applications import MobileNetV2
from tensorflow.keras.layers import Dense, GlobalAveragePooling2D
from tensorflow.keras.models import Model

# 加载预训练模型,不包含顶层分类层
base_model = MobileNetV2(input_shape=(height, width, 3), include_top=False, weights='imagenet')
# 冻结预训练层,避免破坏已学特征
base_model.trainable = False

# 添加自定义分类层
x = base_model.output
x = GlobalAveragePooling2D()(x)
x = Dense(128, activation='relu')(x)
predictions = Dense(4, activation='softmax')(x)

model = Model(inputs=base_model.input, outputs=predictions)

预期效果

修复重复归一化和过度增强问题后,验证准确率应能回升至接近未增强时的水平;结合迁移学习,准确率有望进一步提升至60%以上。

内容的提问来源于stack exchange,提问作者Rezuana Haque

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 18:40:49