Bug小能手系列(python)

2024-02-27 1927阅读

温馨提示:这篇文章已超过387天没有更新,请注意相关的内容是否还可用!

Python运行代码报错

  • 0 引言
  • 1 报错原因
  • 2 解决思路
  • 3. 总结

    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.

    注意:报错对应的代码部分与实际出现错误的部分是不同的。具体报错截图如下所示:

    Bug小能手系列(python)

    1 报错原因

    当代码中存在数组越界或者标签不一致的时候就会出现该错误。这里说的标签不一致的意思是:模型输入的标签应该是0-3,但是你实际输入的标签是1-4。

    当出现该错误时,有时提示的代码错误的位置和实际位置是不一致的。

    2 解决思路

    当出现该报错时,首先在代码加载库包部分加入下面两行代码(首先找到代码实际报错位置):

    import os
    os.environ['CUDA_LAUNCH_BLOCKING'] = '1'
    

    加入该代码后,再次运行代码,此时报错位置为实际报错位置

    然后,再分析代码报错原因:

    Bug小能手系列(python)

    这里给出了我代码的实际报错位置:

    Bug小能手系列(python)

    然后,分析是否是数据维度不匹配或者标签错误。

    最后,分析出是标签错误,并成功运行代码!!!

    最后,也有一些是别的原因导致的错误。

    例如:在加载数据时,num_workers 需要设置为0。

    DataLoader(dataset = dataset,batch_size = batch_size,num_workers = 0,shuffle = True)
    

    3. 总结

    总的而言,感觉出现该错误主要是因为标签或者数组越界的问题。如果大家有什么解决方案的话可以评论留言,这边会根据最新的内容进行更新!!!

    如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]