RuntimeError: cuda runtime error (59) : device-side assert triggered(已解决)
Posted henuliulei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RuntimeError: cuda runtime error (59) : device-side assert triggered(已解决)相关的知识,希望对你有一定的参考价值。
1 block: [0,0,0], thread: [16,0,0] Assertion `t >= 0 && t < n_classes` failed. 2 RuntimeError: cuda runtime error (59) : device-side assert triggered
网上的主要解决方法如下:
造成这个问题的原因就是在做分类任务时,训练数据中存在超出分类数目的标签。比如我一共设置了8个类,但是训练数据中的标签里出现了9,就会报这个错误。那么问题来了,这里有一个陷阱。训练数据中的标签含0也会报上述错误。这个就非常诡异了。一般我们都从0开始数,但是在pytorch里0以下的类别标签都是要报错的。所以如果类别标签从0开始,要给所有类别标签都加上1。
![技术图片](https://image.cha138.com/20210817/e1d0832175eb4ac8bde502879015f5e4.jpg)
这个bug真实恶心到我了,不过还好终于解决了,就记录一下。
以上是关于RuntimeError: cuda runtime error (59) : device-side assert triggered(已解决)的主要内容,如果未能解决你的问题,请参考以下文章
docker容器内运行pytorch多gpu报错 RuntimeError: NCCL Error 2: unhandled system error
RuntimeError:cuda 运行时错误(710):设备端断言触发于
RuntimeError:输入类型(torch.FloatTensor)和权重类型(torch.cuda.FloatTensor)应该相同
带有 CUDA 和 Nvidia 卡的 PyTorch:RuntimeError:CUDA 错误:所有支持 CUDA 的设备都忙或不可用,但 torch.cuda.is_available() 为 T
PyTorch - RuntimeError:后端 CPU 的预期对象,但为参数 #2 'weight' 获得了后端 CUDA
如何修复pytorch'RuntimeError:类型为torch.cuda.LongTensor但发现类型为torch.LongTensor的预期对象'