0 引言
在运行 Python 代码时出现报错:
RuntimeError: CUDA error: device-side assert triggered
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
注意:报错对应的代码部分与实际出现错误的部分是不同的。具体报错截图如下所示:
1 报错原因
当代码中存在数组越界
或者标签不一致
的时候就会出现该错误。这里说的标签不一致
的意思是:模型输入的标签应该是0-3,但是你实际输入的标签是1-4
。
当出现该错误时,有时提示的代码错误的位置和实际位置是不一致的。
2 解决思路
当出现该报错时,首先
在代码加载库包部分加入下面两行代码(首先找到代码实际报错位置
):
import os
os.environ['CUDA_LAUNCH_BLOCKING'] = '1'
加入该代码后,再次运行代码,此时报错位置为实际报错位置
然后
,再分析代码报错原因
:
这里给出了我代码的实际报错位置:然后
,分析是否是数据维度不匹配
或者标签错误
。最后
,分析出是标签错误
,并成功运行代码!!!
最后,也有一些是别的原因导致的错误。例如
:在加载数据时,num_workers
需要设置为0
。
DataLoader(dataset = dataset,batch_size = batch_size,num_workers = 0,shuffle = True)
3. 总结
总的而言,感觉出现该错误主要是因为标签
或者数组越界
的问题。如果大家有什么解决方案的话可以评论留言,这边会根据最新的内容进行更新!!!文章来源:https://www.toymoban.com/news/detail-767748.html
如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。文章来源地址https://www.toymoban.com/news/detail-767748.html
到了这里,关于Bug小能手系列(python)_13: RuntimeError: CUDA error: device-side assert triggered CUDA kernel errors might的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!