ultralytics 8.0.107 (#2778)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Peter van Lunteren <contact@pvanlunteren.com>
This commit is contained in:
Glenn Jocher 2023-05-23 13:50:24 +02:00 committed by GitHub
parent 4db686a315
commit dada5b73c4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 236 additions and 73 deletions

View file

@ -205,6 +205,20 @@ def get_flops(model, imgsz=640):
return 0
def get_flops_with_torch_profiler(model, imgsz=640):
# Compute model FLOPs (thop alternative)
model = de_parallel(model)
p = next(model.parameters())
stride = (max(int(model.stride.max()), 32) if hasattr(model, 'stride') else 32) * 2 # max stride
im = torch.zeros((1, p.shape[1], stride, stride), device=p.device) # input image in BCHW format
with torch.profiler.profile(with_flops=True) as prof:
model(im)
flops = sum(x.flops for x in prof.key_averages()) / 1E9
imgsz = imgsz if isinstance(imgsz, list) else [imgsz, imgsz] # expand if int/float
flops = flops * imgsz[0] / stride * imgsz[1] / stride # 640x640 GFLOPs
return flops
def initialize_weights(model):
"""Initialize model weights to random values."""
for m in model.modules():