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

训练深度学习分类模型时编码分类标签遇AttributeError,求排查

问题原因与解决办法

错误根源

  • Tokenizer是专门为文本特征预处理设计的工具,它的texts_to_sequences方法会自动对输入的文本执行lower()(转小写)等字符串预处理操作。但你的labels_train和labels_test是numpy数组格式的分类标签(并非文本字符串),数组对象本身没有lower()这个字符串方法,直接调用就触发了AttributeError。
  • 核心问题是你混淆了文本特征和分类标签的预处理逻辑:文本需要Tokenizer做分词、转序列,但分类标签是离散类别值,完全不需要用文本Tokenizer处理。

正确的标签处理方式

因为你输出层用了7个sigmoid神经元,说明是多标签分类任务(如果是单标签多分类,通常用softmax激活),需要把标签转换成独热编码格式:

  • 如果标签是多标签格式(比如每个样本对应多个类别),用MultiLabelBinarizer:
    from sklearn.preprocessing import MultiLabelBinarizer
    mlb = MultiLabelBinarizer()
    labels_train_onehot = mlb.fit_transform(labels_train)
    labels_test_onehot = mlb.transform(labels_test)
    
  • 如果是单标签多分类(每个样本对应一个类别),先确保标签是整数编码,再用to_categorical:
    from tensorflow.keras.utils import to_categorical
    labels_train_onehot = to_categorical(labels_train, num_classes=7)
    labels_test_onehot = to_categorical(labels_test, num_classes=7)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:52:17