0


解决cuda error:device-side assert triggered

一、问题描述

如题所示,在训练网络时报错

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种解决办法

标签: 深度学习 pytorch

本文转载自: https://blog.csdn.net/qq_35812205/article/details/128924316
版权归原作者 山顶夕景 所有, 如有侵权,请联系我们删除。

“解决cuda error:device-side assert triggered”的评论:

还没有评论