先报错了CUDA error: device-side assert triggered
然后模型放到cpu里查看具体原因,报错了:
(weight, input, padding_idx, scale_grad_by_freq, sparse)
IndexError: index out of range in self
最后发现是因为改了bert预留的[unused*]导致的问题:
tokenizer = BertTokenizer.from_pretrained(pretrain_model_path,additional_special_tokens=added_token)
added_token是需要加入的所有token的list
参考
在改了这个之后,需要在模型里resize_token_embeddings
added_token=['##char##']
tokenizer = AutoTokenizer.from_pretrained("bert-base-chinese",additional_special_tokens=added_token)
model.resize_token_embeddings(len(tokenizer))
然后就不报错了