You need to enable JavaScript to run this app. 训练PyTorch CNN时出现IndexError索引越界错误是什么原因
优惠活动
大模型
产品
解决方案
定价
更多

训练PyTorch CNN时出现IndexError索引越界错误是什么原因

报错诱因

错误提示:index 748 is out of bounds for axis 0 with size 1

该错误完全由标签张量的维度不匹配导致:
你使用的标签labels_ch维度为(1, 18900),其第0维的长度仅为1,仅支持索引值0。而自定义Dataset的__getitem__方法中,直接使用样本索引idx(取值范围为0~18899)作为第0维下标读取标签,当读取第748个样本时,执行的操作为labels_ch[748],自然会触发第0维越界报错。

解决方法
  • 先对标签张量做维度压缩,去掉多余的第0维:执行labels_ch = labels_ch.squeeze(0),处理后标签维度会变为(18900,),第0维长度和训练集样本总数完全匹配。
  • 检查自定义Dataset的__getitem__实现,确认取标签的逻辑为return 样本张量, labels_ch[idx]即可。
  • 若调整后仍有报错,可临时在__getitem__中添加打印语句,输出idx的取值范围和labels_ch的当前维度,确认维度调整生效、索引未超出样本总数范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 04:45:03