我在Pytorch上有一个错误,特别是在nllloss上

我在Pytorch上有一个错误,特别是在nllloss上,pytorch,Pytorch,我想应用这个标准,在哪里 criteria=nn.NLLLoss() 我将其应用于输出和标签 loss = criterion(output.view(-1,1), labels.long()) 其中: *标签的形状 labels tensor([ 1, 4, 1, 1, 4, 1, 2, 3, 2, 4, 2, 3, 3, 4, 0, 4]) output tensor([ 0.1829, 0.1959, 0.1909, 0.1895,

我想应用这个标准,在哪里
criteria=nn.NLLLoss()
我将其应用于输出和标签

loss = criterion(output.view(-1,1), labels.long())
其中:

*标签的形状

labels
tensor([ 1,  4,  1,  1,  4,  1,  2,  3,  2,  4,  2,  3,  3,  4,
         0,  4])
output
tensor([ 0.1829,  0.1959,  0.1909,  0.1895,  0.1914,  0.1883,  0.1895,
         0.1884,  0.1865,  0.1931,  0.1883,  0.1917,  0.1942,  0.1937,
         0.1897,  0.1934])
输出的形状
火炬尺寸([16])

在以下行:

loss=标准(output.view(-1,1),labels.long())

我得到这个错误:

错误是:

运行时错误:断言'cur\u target>=0&&cur\u target
有什么想法吗?

你的标签和输出形状必须分别是
[batch\u size]
[batch\u size,n\u classes]

你有多少个类?我有5个类。那么为什么你有16个输出?你的标签和输出形状必须是
[batch\u size]
[batch\u size,n\u classes]
分别@user3062301不客气。你能投票支持我的回答吗?