在运行 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.
注意:报错对应的代码部分与实际出现错误的部分是不同的。具体报错截图如下所示:
当代码中存在数组越界
或者标签不一致
的时候就会出现该错误。这里说的标签不一致
的意思是:模型输入的标签应该是0-3,但是你实际输入的标签是1-4
。
当出现该错误时,有时提示的代码错误的位置和实际位置是不一致的。
当出现该报错时,首先
在代码加载库包部分加入下面两行代码(首先找到代码实际报错位置
):
import os
os.environ['CUDA_LAUNCH_BLOCKING'] = '1'
加入该代码后,再次运行代码,此时报错位置为实际报错位置
然后
,再分析代码报错原因
:
这里给出了我代码的实际报错位置:
然后
,分析是否是数据维度不匹配
或者标签错误
。
最后
,分析出是标签错误
,并成功运行代码!!!
最后,也有一些是别的原因导致的错误。
例如
:在加载数据时,num_workers
需要设置为0
。
DataLoader(dataset = dataset,batch_size = batch_size,num_workers = 0,shuffle = True)
总的而言,感觉出现该错误主要是因为标签
或者数组越界
的问题。如果大家有什么解决方案的话可以评论留言,这边会根据最新的内容进行更新!!!
如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦。