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

训练RNN/LSTM模型时出现KeyError等于length值的问题求助

问题分析与解决

核心原因

出现KeyError: 60(错误值随length参数同步变化)的本质是**TimeseriesGenerator在匹配输入序列与目标值时,无法找到对应索引的目标行**。

TimeseriesGenerator的工作逻辑是:对长度为N的输入数据X,生成N - length个训练样本。第i个样本的输入为X[i:i+length],对应的目标值是Y[i+length]。如果你的Y_train/Y_test索引不是连续整数(比如存在索引缺失、从非0值开始),或者Y的行数少于X的行数,就会出现无法找到i+length索引的KeyError。

解决方案

1. 重置目标数据集索引

确保Y_train和Y_test的索引是从0开始的连续整数,执行以下代码:

Y_train = Y_train.reset_index(drop=True)
Y_test = Y_test.reset_index(drop=True)

2. 验证数据集行数匹配

确认Y_train.shape[0] == X_train_s.shape[0]、Y_test.shape[0] == X_test_s.shape[0]。如果行数不匹配,检查数据拆分流程,确保X与Y的样本一一对应。

额外注意事项

  • 模型输出为3个神经元,使用binary_crossentropy损失函数需谨慎:如果是多分类任务,建议改用categorical_crossentropy并确保目标值为独热编码格式;如果是多标签分类,binary_crossentropy可行,但需确认目标值是0/1的多列格式。
  • EarlyStopping监控val_accuracy,但模型编译时未指定metrics=['accuracy'],会导致训练过程无法计算验证准确率,最终触发EarlyStopping错误。建议修改编译代码:
RNN_model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:20:48