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

音频分类代码报错修复求助:NameError与ValueError

音频分类模型错误修复方案

1. 解决NameError: num_labels未定义

num_labels代表你音频分类任务的类别总数,必须在调用model.add(Dense(num_labels))前明确定义:

  • 如果已知类别数量(比如10类),直接赋值:
    num_labels = 10
    
  • 如果从数据集中自动统计,可通过标签数据获取:
    import numpy as np
    # 假设y_train是训练集标签数组
    num_labels = len(np.unique(y_train))
    

确保这段代码放在model.add(Dense(num_labels))之前执行。

2. 解决ValueError: 目标数组与输出形状不匹配

错误核心是输出层神经元数量和目标类别数不一致,且损失函数与标签格式不匹配:

  1. 修正输出层:把输出层的神经元数改成num_labels(即你的类别数10),多分类任务需搭配softmax激活函数:
    model.add(Dense(num_labels, activation='softmax'))
    
  2. 匹配损失函数:你的目标标签是one-hot编码格式(形状(6985,10)),必须用categorical_crossentropy作为损失函数,不要用sparse_categorical_crossentropy(后者针对整数格式标签):
    model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
    
  3. 额外验证:确认你的目标标签确实是one-hot编码(比如用to_categorical转换过),如果标签是整数数组(形状(6985,)),再改用sparse_categorical_crossentropy,但输出层神经元数仍需保持为num_labels。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 13:15:39