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

Python实现推特分类LSTM网络时出现ValueError错误如何解决

错误定位

本次报错的触发点为调用train函数时传入class_weights参数的代码行:

class_weights= model.any(cws)

错误信息提示的数组布尔判断歧义,来源于两个问题:

  1. 此处的model是你定义的model_1函数对象,本身不具备any方法,你属于把cws.any()的写法顺序写反,错误调用了不存在的方法。
  2. 即便修正为cws.any(),返回的是布尔值(True/False),但Keras的fit方法要求class_weight参数只能是None或者键为类别索引、值为对应权重的字典,传入布尔值完全不符合参数格式要求,会触发后续的类型校验错误。
修复方案

根据你的使用场景二选一即可:

  • 不需要使用类别权重:直接删除class_weights= model.any(cws)这行参数即可,train函数默认会给该参数赋值None,符合Keras的参数要求。
  • 需要使用提前计算的cws作为类别权重:先将数组格式的cws转换为符合要求的字典,再传入参数:
# 3分类任务将数组转权重字典
class_weight_dict = {i: weight for i, weight in enumerate(cws)}
# 调用train函数时传入
m1 = train(model_1, 
           train_text_vec,
           y_train,
           test_text_vec,
           y_test,
           checkpoint_path='model_1.h5',
           class_weights=class_weight_dict)

额外提示:你定义的train函数里参数epcohs为拼写错误,正确拼写为epochs,不影响本次报错,但后续调整训练轮次时可能引发预期外的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:45:04