PyTorch错误定位系列之CUDA error: device-side assert triggered
Introduction
本栏目只是提供一些自己遇到的错误的解决思路。
Background
我昨天写了个模型加了focal loss可以训练,今天换了一批数据,尼玛第二个epoch就报了上面标题这个错误。
Solution
经过本人,本菜鸡的大量调研(google),发现该错误可以总结为tensor溢出了或者下溢了。
所以按着这个思路,我就尝试把我加的focal loss给去掉了,换成了正常的nn.CrossEntropyLoss 就尼玛能正常了。
因此,我猜测这回真的遇到了数值溢出。因为在我抄过来的focal loss中有一个torch.exp的操作,由于写得时间过早(2周前),我想不起来是原作者就这样还是我改的有问题。 最终,我就的方法就是用nn.CrossEntropyLoss,嘿嘿嘿。
开玩笑哈,知道问题,我们就知道往哪里改了。
改,我肯定要改的!!
博主分享了遇到CUDAerror:device-side assert triggered错误的解决过程。问题源于模型训练时使用了可能导致数值溢出的focal loss。通过替换为nn.CrossEntropyLoss,问题得到解决。建议检查涉及数值运算的部分,尤其是指数操作,以防止溢出。

3012

被折叠的 条评论
为什么被折叠?



