在服务器上跑SSD eval.py代码时,出错:
RuntimeError: CUDA error: device-side assert triggered
在网上查了很久自己也做了很多测试,大概将定位到出错代码处,但具体的错误仍然不知道,然后我又在本地的pycharm上进行了测试,报错:
Expected object of scalar type unsigned char but got scalar type bool for argument ‘other’`
出错处源代码如下:
suppress = torch.max(suppress,
(overlap[box] > max_overlap))
发现是(overlap[box] > max_overlap)的类型错误,改正后的代码如下:
image_boxes.append(class_decoded_locs[1 - suppress])
image_labels.append(torch.LongTensor((1 - suppress).sum().item() * [c]).to(device))
image_scores.append(class_scores[1 - suppress])
运行成功!
有些时候CUDA报错,不一定其本身的问题,可能是代码的问题,还是要仔细一点查看代码才行。