在使用spert模型做实体关系联合抽取时遇到报错CUDA error: device-side assert triggered,如下图所示,经查得知有可能是因为数据标签的下标溢出。
一开始不知道怎么排查哪个样本出问题,因为数据经过shuffle,分完batch后样本是随机的。print了半天也没找到,师兄说了一句,把shuffle设为false不就行了,tnnd,一语惊醒梦中人。
data_loader = DataLoader(dataset, batch_size=self._args.train_batch_size,
shuffle=False, drop_last=True,
num_workers=self._args.sampling_processes,
collate_fn=sampling.collate_fn_padding)
把shuffle改成false,batch-size改成1,最终找到第184个样本的实体。
{
"type": "SYMBOL",
"start": 39,
"end": 164
}
应该是实体长度太长了导致的,把这个样本直接删掉,跑通!