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

使用pad_sequences触发IndexError错误的解决方法

修复pad_sequences()的IndexError问题

错误原因

你的x00_1是形状为(1, 389, 39)的3维数组,当前代码存在两个核心问题:

  • 若i不等于0,x00_1[i]会直接触发索引越界(因为第一维仅包含1个元素);
  • 即使i=0,x00_1[0]是(389, 39)的2维数组,传入pad_sequences后会被误判为389个长度为39的一维序列,pad后输出形状为(389, 128),既不符合你“将长度389的39维序列pad到128长度”的需求,还会因形状不匹配触发索引错误。

修复代码

如果你需要将x00_1中唯一的样本(形状(389, 39))在序列长度维度(即389对应的维度)pad为(128, 39),按以下方式修改代码:

from tensorflow.keras.utils import pad_sequences
# 取出x00_1中的唯一样本,包装成列表传入pad_sequences
padded_result = pad_sequences([x00_1[0]], padding='post', maxlen=128, dtype='float32')
# padded_result形状为(1, 128, 39),提取第一个元素得到目标形状(128, 39)
input_x[i] = padded_result[0]

注意事项

  • 确保i的取值在input_x的有效索引范围内,比如input_x的长度至少为i+1,且每个元素的形状为(128, 39);
  • pad_sequences的输入应为样本列表,当单个样本是二维数组(序列长度+特征维度)时,必须将其放入列表中,否则函数会错误地把特征维度当成序列长度处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:15:02