PyTorch ValueError: 预期目标大小 (2, 33), got torch.Size([2, 73])

问题描述

我对 Pytorch 很陌生。 我想计算 Transformer 中批次的损失。在这种情况下,我的“批次”只有两个副本。 该批次输出形状为 2,73,33 的张量:

output
tensor([[[ 21.1355,-7.5047,2.8138,...,-14.1462,-15.1999,-7.2595],...
output.size()
>>> torch.Size([2,33])

目标具有每个位置的分类解决方案。它的形状为 2,73:

target.size()
>>> torch.Size([2,73])

当我计算损失时,如果我只比较第一个副本,我会得到一个值:

loss = torch.nn.CrossEntropyLoss(ignore_index=1)
loss(output[0],target[0])
tensor(0.1967)

但是当我一次完成时它会出错:

loss = torch.nn.CrossEntropyLoss(ignore_index=1)
loss(output,target)
ValueError: Expected target size (2,33),got torch.Size([2,73])

我是否必须遍历副本并对它们求平均值? 非常感谢任何帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)