PyTorch错误定位系列之CUDA error: device-side assert triggered

博主分享了遇到CUDAerror:device-side assert triggered错误的解决过程。问题源于模型训练时使用了可能导致数值溢出的focal loss。通过替换为nn.CrossEntropyLoss,问题得到解决。建议检查涉及数值运算的部分,尤其是指数操作,以防止溢出。

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,嘿嘿嘿。

开玩笑哈,知道问题,我们就知道往哪里改了。

改,我肯定要改的!!

Reference

  1. CUDA error: device-side assert triggered解决方案
  2. PyTorch 错误 RuntimeError: CUDA error: device-side assert triggered
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值