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

Keras模型训练报错:Shapes (None,3)与(None,2)不兼容求助

解决形状不兼容报错(Shapes (None, 3) and (None, 2) are incompatible)

问题根源

你的训练标签经过LabelBinarizer处理后是3维的(对应3个分类),但模型最后输出层只设置了2个神经元,两者维度不匹配,导致训练时形状校验失败。

修复步骤

  • 先确认实际分类数:在预处理标签前,先打印标签的唯一类别数量,明确任务的分类数:
    import numpy as np
    print("实际分类数量:", len(np.unique(label)))
    
  • 修改模型输出层:把最后一个Dense层的神经元数改成和实际分类数一致的数值(比如实际是3类就改成3):
    # 替换原代码中Dense(2)的部分
    Model.add(Dense(3))  # 这里的数字要和实际分类数匹配
    Model.add(Activation("softmax"))
    
  • 重新训练:修改后重新编译模型,再执行训练代码即可。

额外提醒

如果你的任务确实是2分类,那得检查label数据是否混入了第三类标签,或者数据预处理时有没有引入错误,确保标签只有两类。LabelBinarizer会根据标签的唯一值自动生成对应维度的one-hot编码,所以输出层神经元数必须和类别数完全对应。

内容的提问来源于stack exchange,提问作者Anh Thái Huỳnh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 06:25:39