我在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不客气。你能投票支持我的回答吗?