pytorch, BERT, RuntimeError: CUDA error: device-side assert triggered

  对于pytorch,在进行训练的时候,突然报了RuntimeError: CUDA error: device-side assert triggered错误,根据网上的大部分解决方案,这个错误一般是出现在“数组越界”的情况,这里不是说具体的真的是数组越界,只是泛指这一类的,访问的地址超过了最长范围了。

  但是为了确定具体的错误,仅仅靠上面那个错误提示是不够的,所以我们想要它显示具体的错误信息,这个时候想要判断出错的地方,我们需要在运行代码的时候,在命令前面加上CUDA_LAUNCH_BLOCKING=1,如下所示:

CUDA_LAUNCH_BLOCKING=1 Python main.py -cuda -epoch 10 ......

  之后再报错,就可以看到具体的出错原因。比如我遇到的,是这样的错误:
Assertion `srcIndex < srcSelectDimSize` failed.

我使用的是BERT预训练模型,这个错误实际上是因为输入的文本长度太长了,比如我用的BERT-base最长支持512位,而我输入的长度大于了512,这个时候只需要截断输入的文本,保持输入的长度小于等于512,就可以正常运行了。

参考网址:https://blog.csdn.net/baoyongshuai1509/article/details/103314145/
https://www.cnblogs.com/laozhanghahaha/p/13037595.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值