yolov5 Error: RuntimeError: a view of a leaf Variable that requires grad is being used in an in-place
Solution:
In model/yolo.py file
for mi, s in zip(m.m, m.stride): # from
b = mi.bias.view(m.na, -1) # conv.bias(255) to (3,85)
b[:, 4] += math.log(8/(640/s) ** 2) # obj (8 objects per 640 image)
b[:, 5:] += math.log(0.6/(m.nc - 0.99)) if cf is None else torch.log(cf/cf.sum()) # cls
mi.bias = torch.nn.Parameter(b.view(-1), requires_grad=True)
Add with torch.no_grad(): as follows
for mi, s in zip(m.m, m.stride): # from
b = mi.bias.view(m.na, -1) # conv.bias(255) to (3,85)
with torch.no_grad():
b[:, 4] += math.log(8/(640/s) ** 2) # obj (8 objects per 640 image)
b[:, 5:] += math.log(0.6/(m.nc - 0.99)) if cf is None else torch.log(cf/cf.sum()) # cls
mi.bias = torch.nn.Parameter(b.view(-1), requires_grad=True)
——> The root cause is to add:
with torch.no_grad():