This commit is contained in:
Glenn Jocher 2018-11-22 14:29:50 +01:00
parent db515a4535
commit f18f288990
2 changed files with 9 additions and 8 deletions

View File

@ -194,12 +194,12 @@ class YOLOLayer(nn.Module):
loss = lx + ly + lw + lh + lconf + lcls
# Sum False Positives from unassigned anchors
i = torch.sigmoid(pred_conf[~mask]) > 0.5
if i.sum() > 0:
FP_classes = torch.argmax(pred_cls[~mask][i], 1)
FPe = torch.bincount(FP_classes, minlength=self.nC).float().cpu() # extra FPs
else:
FPe = torch.zeros(self.nC)
FPe = torch.zeros(self.nC)
if requestPrecision:
i = torch.sigmoid(pred_conf[~mask]) > 0.5
if i.sum() > 0:
FP_classes = torch.argmax(pred_cls[~mask][i], 1)
FPe = torch.bincount(FP_classes, minlength=self.nC).float().cpu() # extra FPs
return loss, loss.item(), lx.item(), ly.item(), lw.item(), lh.item(), lconf.item(), lcls.item(), \
nT, TP, FP, FPe, FN, TC
@ -254,7 +254,7 @@ class Darknet(nn.Module):
output.append(x)
layer_outputs.append(x)
if is_training:
if is_training and requestPrecision:
self.losses['nT'] /= 3
self.losses['TC'] /= 3 # target category
metrics = torch.zeros(3, len(self.losses['FPe'])) # TP, FP, FN

View File

@ -214,7 +214,8 @@ def build_targets(pred_boxes, pred_conf, pred_cls, target, anchor_wh, nA, nC, nG
if nTb == 0:
continue
t = target[b]
FN[b, :nTb] = 1
if requestPrecision:
FN[b, :nTb] = 1
# Convert to position relative to box
TC[b, :nTb], gx, gy, gw, gh = t[:, 0].long(), t[:, 1] * nG, t[:, 2] * nG, t[:, 3] * nG, t[:, 4] * nG