也许有人能在这里帮助我。我正在尝试计算我的网络输出的交叉熵损失。
print output
Variable containing:
1.00000e-02 *
-2.2739 2.9964 -7.8353 7.4667 4.6921 0.1391 0.6118 5.2227 6.2540
-7.3584
[torch.FloatTensor of size 1x10]
并且需要的标签形式如下:
print lab
Variable containing:
x
[torch.FloatTensor of size 1]
x是一个介于0和9之间的整数。根据pytorch文档(http://pytorch.org/docs/master/nn.html)。
criterion = nn.CrossEntropyLoss()
loss = criterion(output, lab)
这应该可以运行,但不幸的是我收到了一个奇怪的错误。
TypeError: FloatClassNLLCriterion_updateOutput received an invalid combination of arguments - got (int, torch.FloatTensor, !torch.FloatTensor!, torch.FloatTensor, bool, NoneType, torch.FloatTensor, int), but expected (int state, torch.FloatTensor input, torch.LongTensor target, torch.FloatTensor output, bool sizeAverage, [torch.FloatTensor weights or None], torch.FloatTensor total_weight, int ignore_index)
有人能帮我吗?我真的很困惑,已经尽力想到所有可能有用的方法了。
最好的祝福