CUDA error: device-side assert triggered CUDA kernel errors问题解决

今天在写pytorch代码的时候,报了这样的一个错误

CUDA error: device-side assert triggered
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.

这个问题的解决只要在前面加上一个指定cuda部分的代码

torch.cuda.set_device(0)

然而问题未解决,最终发现这里是由于padding中出现了-100
此时这里也引出了chinese roberta与bert的一个区别,作为所有的bert、所有的nezha以及chinese roberta模型,后面的padding加上的都是0,而作为english padding模型,padding加上的内容为1,所以chinese roberta直接调用bert即可,目前pythonicforbert库中还尚未解决这一问题,等待着后续的优化使用
这里一个问题出现在,预训练的时候label可以出现-100的数值,但是输入的input不可以出现-100的数值,否则没法通过embedding的网络层

你可能感兴趣的:(pytorch报错,报错问题解决,python,自然语言处理)