You need to enable JavaScript to run this app. ISIC皮肤癌数据集训练CNN时出现(None,1)与(None,9)形状不兼容错误
优惠活动
大模型
产品
解决方案
定价
更多

ISIC皮肤癌数据集训练CNN时出现(None,1)与(None,9)形状不兼容错误

错误原因

你当前的标签格式和使用的损失函数要求不匹配:

  • 你使用的categorical_crossentropy损失要求标签为One-Hot编码格式,形状需要和模型输出一致为(None, 9)
  • 从你给出的数据集信息可以看到,你的标签是整数索引格式,形状为(None,)(扩展后为(None,1)),因此触发形状不兼容错误

解决方案

方案1(推荐,修改量最小):更换损失函数

直接把模型编译时的损失函数替换为sparse_categorical_crossentropy,该损失函数原生支持整数格式的多分类标签,无需修改数据集:

model.compile(optimizer='sgd',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

方案2:对标签做One-Hot编码

如果你需要保留categorical_crossentropy损失,可以在数据集预处理阶段将标签转换为独热编码:

# 对训练集和验证集做统一处理
def one_hot_encode(x, y):
    return x, tf.one_hot(y, depth=num_classes)

train_ds = train_ds.map(one_hot_encode)
val_ds = val_ds.map(one_hot_encode)

额外优化建议:你当前的卷积层后没有添加池化层,会导致特征图尺寸过大,Flatten后全连接层参数量过高,容易过拟合、训练速度慢,建议在每个卷积+激活层后添加layers.MaxPooling2D((2,2))层压缩特征尺寸。

内容的提问来源于stack exchange,提问作者Sourodip Kundu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 01:45:07