You need to enable JavaScript to run this app. Keras训练LSTM时报InvalidArgumentError:索引-1不在[0,10)范围怎么办
优惠活动
大模型
产品
解决方案
定价
更多

Keras训练LSTM时报InvalidArgumentError:索引-1不在[0,10)范围怎么办

报错原因与修正方案

核心报错触发逻辑

  • Embedding层仅允许输入[0, 词表大小)范围内的非负整数索引,当前Embedding层设置的词表大小为10,合法索引范围为0~9,输入数据中存在值为-1的非法索引,直接触发查找越界错误。
  • 输入数据中的负索引一般来源于文本转序列的映射流程:未匹配到的词汇被默认赋值为-1,未纳入合法索引体系。

代码中存在的结构错误

  • Embedding层参数与数据形状完全错位:现有代码Embedding(10, 82, input_length=180568),将训练集总样本数180568设置为序列长度,将单样本序列长度82设置为嵌入向量维度,和实际数据形状((180568, 82) 即 180568个样本,单样本序列长度82)完全不匹配。
  • LSTM层参数语法错误:input_shape=features_train 不符合Keras参数规则,input_shape需要接收元组格式的形状参数,不能直接传入整个训练集张量;且因前面已经衔接Embedding层,LSTM无需重复定义输入形状。
  • 输出形状与标签不匹配:当前标签形状为(180568,),即每个样本对应一个二分类标签,但现有模型输出形状为(None, 180568, 10),即使解决Embedding层报错,也会触发后续的形状匹配错误。

具体修正步骤

  1. 清洗输入数据
    • 执行代码检查特征数值范围:print(f"特征最小值: {features.min()}, 特征最大值: {features.max()}")
    • 处理所有小于0的异常索引:可将-1映射为固定合法索引(如预留一个索引值作为未登录词标记),或直接删除包含非法索引的样本,确保所有特征值为0到(词表最大索引值)之间的非负整数。
  2. 调整模型结构
    • 按照实际数据形状设置Embedding参数:input_length设为单样本序列长度82,input_dim设为特征最大索引值+1,嵌入维度取合理值即可。
    • 调整LSTM层参数:将return_sequences设为False,删除错误的input_shape参数。
    • 增加匹配二分类任务的输出层,使模型输出形状与标签对齐。

修正后的可运行示例代码

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Activation, Dropout, Dense

# 动态计算合法词表大小
vocab_size = features.max() + 1
# 单样本序列长度为82
seq_len = features_train.shape[1]

model = Sequential()
# 按照数据形状调整Embedding层参数
model.add(Embedding(input_dim=vocab_size, output_dim=32, input_length=seq_len))
# LSTM层自动适配Embedding输出形状,关闭返回序列参数
model.add(LSTM(16, return_sequences=False))
model.add(Dropout(0.2))
# 二分类输出层,匹配标签形状
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()

# 训练流程
history = model.fit(
    features_train,
    labels_train,
    epochs=10,
    batch_size=128,
    validation_data=(features_test, labels_test)
)

注意:如果处理完负索引后依然报错,需要确认Embedding层的input_dim参数设置是否大于所有输入特征的最大值,否则依然会触发索引越界错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.08 22:06:03