当前位置: 首页 > 工具软件 > Device > 使用案例 >

解决cuda error:device-side assert triggered

益英逸
2023-12-01

一、问题描述

如题所示,在训练网络时报错cuda error:device-side assert triggered

二、解决方法

(1)torch.backends.cudnn.enable =True, torch.backends.cudnn.benchmark = True
(2)代码逻辑问题:
1.检查代码,看是否是训练时loss成为nan,可以更换词向量的拼接方式等。
2.如果是分类任务,可能是标签个数不对应,特别是还有index >= -sizes[i] && index < sizes[i] && “index out of bounds的提示时。
(3)出现device-side assert triggered的BUG不能只关注报错代码
(4)可以直接打开pytorch的源码:如发生binary_cross_entropy_out_cuda()断言,可能是训练到一个时间点时,变成nan无穷值,这样即使再输入sigmoid最后一层,最终的结果也不会是0到1之间,可以将BCELoss改为BCEWithLogitsLoss
(5)也可以直接先使用CPU跑代码,可以显示出直接用GPU跑代码没有显示的错误。

Reference

[1] RuntimeError: CUDA error: device-side assert triggered的解决
[2] 关于cuda error:device-side assert triggered的3种解决办法

 类似资料: