从BERT改到XLM-Roberta时,出现该报错,上网查了半天,可能原因如下:
- CUDA内存溢出:通过改小batch_size无效;
- tokenizer和language model不匹配:经检查代码,发现匹配无误;
- 维度存在不一致:经检查代码,类别数、隐向量和词向量维度都是正确的;
- cuda版本问题:由于是改代码,前面代码未出现该问题,因此不考虑该假设。
后将cuda改为device = 'cpu'
模式,发现报错为index溢出,定位错误在tokenizer,经检查发现是BERT和XLM的tokenizer中的pad_token_id
是不同的,前者为0,后者为1,改正后,即可运行。