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

多分类任务ANN模型出现Shapes(None,1)与(None,6)不兼容报错求解

错误根因

报错是损失函数与标签格式不匹配导致:categorical_crossentropy损失要求输入的标签为独热编码格式,形状需要和模型输出的(None, 6)对应,而当前使用的y_train、y_test是原始整数类别标签,形状为(None, 1),二者形状不兼容。

解决方案

可以任选以下任意一种方案修复问题:

  • 方案一(修改损失函数,操作更简便)
    直接将模型编译时的损失函数替换为sparse_categorical_crossentropy,该损失原生支持整数类别标签,无需额外修改标签格式:
    model.compile(optimizer='rmsprop', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
    
  • 方案二(对标签做独热编码,保留原损失函数)
    如果你需要保留categorical_crossentropy损失,需要先将标签转换为独热编码格式,在调用model.fit前添加如下代码即可:
    from tensorflow.keras.utils import to_categorical
    y_train = to_categorical(y_train, num_classes=6)
    y_test = to_categorical(y_test, num_classes=6)
    

额外注意事项

当前代码存在训练集、测试集逻辑混用的错误:你从test.csv读取数据作为训练集,从train.csv读取数据作为测试集,会导致模型效果评估异常,建议调整读取逻辑:

# 修正训练集、测试集读取顺序
df = pd.read_csv('train.csv')
dft = pd.read_csv('test.csv')

内容的提问来源于stack exchange,提问作者Md. Imrul Kayes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:06:08