为了账号安全,请及时绑定邮箱和手机立即绑定

神经网络简单示例中的pytorch交叉熵错误

神经网络简单示例中的pytorch交叉熵错误

芜湖不芜 2021-09-02 20:05:47
H1,我正在尝试制作满足简单公式的NN模型。y = X1^2 + X2^2但是当我将 CrossEntropyLoss 用于损失函数时,我收到两个不同的错误消息。首先,当我设置这样的代码时x = torch.randn(batch_size, 2)y_hat = model(x)y = answer(x).long()optimizer.zero_grad()loss = loss_func(y_hat, y)loss.backward()optimizer.step()我收到这条消息RuntimeError: Assertion `cur_target >= 0 && cur_target < n_classes' failed.  at c:\programdata\miniconda3\conda-bld\pytorch_1533090623466\work\aten\src\thnn\generic/Cl assNLLCriterion.c:93其次,我像这样更改代码x = torch.randn(batch_size, 2)y_hat = model(x)y = answer(x).long().view(batch_size,1,1)optimizer.zero_grad()loss = loss_func(y_hat, y)loss.backward()optimizer.step()然后我收到消息RuntimeError: multi-target not supported at c:\programdata\miniconda3\conda-bld\pytorch_1533090623466\work\aten\src\thnn\generic/ClassNLLCriterion.c:21我怎么解决这个问题?谢谢。(对不起我的英语)
查看完整描述

1 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

您使用了错误的损失函数。CrossEntropyLoss通常用于分类问题,而您的问题是回归问题。因此,您应该使用用于回归的损失,例如均方误差损失L1 损失等任务。看看这个这个这个这个


查看完整回答
反对 回复 2021-09-02
  • 1 回答
  • 0 关注
  • 326 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信