首页 > 其他 > 详细

RuntimeError: cuda runtime error (59) : device-side assert triggered(已解决)

时间:2020-07-06 23:40:01      阅读:99      评论:0      收藏:0      [点我收藏+]
是这样的,在跑fasterrcnn的时候,要把原模型21个类别改为自己的类别数目,第一次改过后运行没有报错,第二次再修改就报错了,错误如下
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。

       但是我查看分析了自己的类别确实从0开始,所以应该不是这个错,经过多次百度Google,终于在一篇博文里面找到我的问题里面的线索。
是这样的第一次跑程序时是16个类别(我少删了4个,没发现)运行后发现多了四个类别,所以我删除这四个类别,但是再次运行就报了上面的错误,原因是我们每次
运行的时候都要把上次运行生成的cache给删除才行,因为我没删除,所以程序认为是16个类别,但是只提供了12个类别。所以报了这个错,删除cache重新运行就没问题了。
技术分享图片

 

 这个bug真实恶心到我了,不过还好终于解决了,就记录一下。

 

RuntimeError: cuda runtime error (59) : device-side assert triggered(已解决)

原文:https://www.cnblogs.com/henuliulei/p/13258297.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!