问题描述
原本运行时正确的,但是更换了分词器后突然就出现下面的错误提示:
RuntimeError: CUDA error: device-side assert triggered
问题原因
很可能是数据越界问题,在NLP中很可能出现在词嵌入那块,比如词表一共有1000个词,那么输入的token id 的范围应该是0-999,如果你的输入token id 包含了1001,或者更大的值,那么在进行词嵌入的时候,嵌入矩阵无法索引到这么大的位置,就会出现越界问题。这个问题还可能出现在输出上,比如你的输出标签只有3类,但是你给了一个id 为4,那应该也会引起类似的问题。
解决方案
仔细查看一下代码,尤其是输入和输出位置,有没有引用超过设定的id号。