用GPU训练时是这样的一个报错:
看了其他帖子尝试用CPU训练可以直接看到错误原因:
类别数组超出了界限。
于是找到loss.py文件,148行,
# Classification
if self.nc > 1: # cls loss (only if multiple classes)
t = torch.full_like(ps[:, 5:], self.cn, device=device) # targets
t[range(n), tcls[i]] = self.cp
lcls += self.BCEcls(ps[:, 5:], t) # BCE
改成
# Classification
if self.nc > 1: # cls loss (only if multiple classes)
t = torch.full_like(ps[:, 5:], self.cn, device=device) # targets
t[range(n), tcls[i]-1] = self.cp
lcls += self.BCEcls(ps[:, 5:], t) # BCE