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

索引越界错误排查:axis 0维度大小4141却访问索引11186

问题:IndexError索引越界异常

运行机器学习项目时反复触发IndexError,每次报错的索引值不同,但始终提示:

index X is out of bounds for axis 0 with size 4141

报错溯源:

  • 触发位置:datasets.py第154行__getitem__方法调用iterator(index)
  • 最终报错语句:第116行prepair_training_pairs方法中的labels = self.labels[index, :]

已知代码关联信息

  • generated_train_batch_label函数生成的labels.pkl中,张量形状为tensor.Size([4141, 18]),即axis 0维度长度为4141
  • 数据集类的__len__方法返回len(self.filenames),但prepair_training_pairs、prepair_test_pairs方法使用传入的index访问self.labels

根因分析

核心矛盾是数据集长度和标签集长度不匹配:self.filenames的长度大于4141,导致__getitem__方法传入的index范围超过了self.labels的axis 0维度上限(最大有效索引为4140),触发越界报错。

修复方案

  • 对齐数据集与标签集长度:检查self.filenames的生成逻辑,过滤掉没有对应标签的文件条目,确保len(self.filenames)等于4141
  • 修正__len__方法返回值:将数据集类的__len__方法改为返回self.labels.shape[0],限制索引的取值范围,避免超出标签集维度上限
  • 检查标签生成逻辑:确认generated_train_batch_label函数是否遗漏部分标签生成,确保标签集axis 0长度与self.filenames长度一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 19:30:56