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

你可能感兴趣的:(深度学习,python,pytorch,RuntimeError,Python,bert,CUDA,error)