这个报错有千万种可能,大家代码环境可能千差万别,因为这个是一个广泛型报错,不是那种专门某个包才会报的错。

所以我只能跟你说这个报错是什么意思,然后你需要自己检查。

原因:
pytorch内部要求输入是2维以上的,但是你输入了一个1维的东西进来。这个时候索引就会出问题,

比如a是一维的:

a=torch.rand(2)
print(a)

tensor([0.7804, 0.5983])


a.index_select(0,torch.tensor([0]))
a.index_select(-1,torch.tensor([0]))

tensor([0.7804])
tensor([0.7804])

可以看到,第维度0和维度-1都可以使用,但是你使用维度1的话就得报错了:

a.index_select(1,torch.tensor([0]))

在这里插入图片描述

所以解决办法就是好好看看报错处你所使用的函数的输入到底要求是什么形状。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐