From bfacfc6b4a2b0151bce3e9c744f722c263671e03 Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Fri, 5 Nov 2021 13:18:46 +0100 Subject: [PATCH] Update cls bias init (#5520) * Update cls bias init Increased numerical precision. Returns 1.0 probability for single-class datasets now. Addresses https://github.com/ultralytics/yolov5/issues/5357 ```python torch.sigmoid(torch.tensor([math.log(0.6 / (1 - 0.99999))])) Out[19]: tensor([1.0000]) ``` * Update yolo.py --- models/yolo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/yolo.py b/models/yolo.py index e5ee3fd..85c8d43 100644 --- a/models/yolo.py +++ b/models/yolo.py @@ -201,7 +201,7 @@ class Model(nn.Module): for mi, s in zip(m.m, m.stride): # from b = mi.bias.view(m.na, -1) # conv.bias(255) to (3,85) b.data[:, 4] += math.log(8 / (640 / s) ** 2) # obj (8 objects per 640 image) - b.data[:, 5:] += math.log(0.6 / (m.nc - 0.99)) if cf is None else torch.log(cf / cf.sum()) # cls + b.data[:, 5:] += math.log(0.6 / (m.nc - 0.999999)) if cf is None else torch.log(cf / cf.sum()) # cls mi.bias = torch.nn.Parameter(b.view(-1), requires_grad=True) def _print_biases(self):