(pytoch)神经网络做分类任务时的一些常见错误

1. 错误一 TypeError: expected Long (got Float)

  • 错误语句:
loss = criterion(outputs, target)
  • 错误原因:target类型错误,要求时是Long类型的,给了Float类型的
  • 修改后:
loss = criterion(outputs, target.long())

2. 错误二 RuntimeError: Assertion cur_target 0 cur_target n_classes failed

  • 错误全部信息:
    RuntimeError: Assertion cur_target >= 0 && cur_target < n_classes' failed. at C:\Users\builder\AppData\Local\Temp\pip-req-build-9msmi1s9\aten\src\THNN/generic/ClassNLLCriterion.c:97
  • 错误语句:
loss = criterion(outputs, target.long())
  • 错误原因1:模型输出与分类数不一致,比如有10个类别,但是网络的输出维度设置的是9;

  • 改正方法1:检查网络的输出维度。

  • 错误原因2:标签的设置不是从0开始;

  • 改正方法2:如果标签是从1开始的,修改标签值使其从0开始.

3. 错误三 IndexError: dimension specified as 0 but tensor has no dimensions

  • 错误原因:只知道是batch_size太小引起的;
  • 改正方法:将batch_size调大。

4. 错误四RuntimeError: multi-target not supported at

  • 错误全部信息:
    RuntimeError: multi-target not supported at C:\Users\builder\AppData\Local\Temp\pip-req-build-9msmi1s9\aten\src\THNN/generic/ClassNLLCriterion.c:22
  • 错误语句:
loss = criterion(outputs, target.long())
  • 错误原因:标签必须是一维的,我设置成了两维
  • 改正方法:
target = target.squeeze() # 压缩一个维度
loss = criterion(outputs, target.long())
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值