首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >火炬交叉熵(IndexError:目标2超出界限)

火炬交叉熵(IndexError:目标2超出界限)
EN

Stack Overflow用户
提问于 2022-10-16 11:03:15
回答 1查看 50关注 0票数 -1

我是新来的火把和pyG。我正面临一个错误。

为什么我会得到以下错误:

代码语言:javascript
运行
复制
File "/home/es/anaconda3/envs/pyg-meta/lib/python3.10/site-packages/torch/nn/modules/loss.py", line 1164, in forward
    return F.cross_entropy(input, target, weight=self.weight,
  File "/home/es/anaconda3/envs/pyg-meta/lib/python3.10/site-packages/torch/nn/functional.py", line 3014, in cross_entropy
    return torch._C._nn.cross_entropy_loss(input, target, weight, _Reduction.get_enum(reduction), ignore_index, label_smoothing)
IndexError: Target 2 is out of bounds.

这是我的代码和形状

代码语言:javascript
运行
复制
(Pdb) out.shape
torch.Size([64, 2])
(Pdb) Yt_train.shape
torch.Size([64])

这是一个for循环中批大小为64的pytorch dataloader

代码语言:javascript
运行
复制
criterion = torch.nn.CrossEntropyLoss()
for data in loader:
    _, out = model(data.x, data.edge_index, data.batch)
    Yt_train = data.y.type(torch.LongTensor)
    loss = criterion(out, Yt_train)

如何解决这一问题?我错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2022-10-16 12:36:42

您的Yt_train有正确的形状,但是应该包含{0,1}的值-- py手电抱怨的是值2的存在,它超出了张量out的范围。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74086538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档