From 6817548cc5c5521faaf0eff16ec7e704d8bcfaa9 Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Mon, 6 Jun 2022 23:31:13 +0200 Subject: [PATCH] experimental.py Apple MPS fix May resolve https://github.com/ultralytics/yolov5/issues/8102 --- models/experimental.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/models/experimental.py b/models/experimental.py index c2d934546714..3a83acc1142d 100644 --- a/models/experimental.py +++ b/models/experimental.py @@ -72,12 +72,13 @@ def forward(self, x, augment=False, profile=False, visualize=False): def attempt_load(weights, device=None, inplace=True, fuse=True): + # Loads an ensemble of models weights=[a,b,c] or a single model weights=[a] or weights=a from models.yolo import Detect, Model - # Loads an ensemble of models weights=[a,b,c] or a single model weights=[a] or weights=a model = Ensemble() for w in weights if isinstance(weights, list) else [weights]: - ckpt = torch.load(attempt_download(w), map_location=device) + w = attempt_download(w) # download if missing + ckpt = torch.load(w, 'cpu').to(device) if device == torch.device('mps') else torch.load(w, device) # load ckpt = (ckpt.get('ema') or ckpt['model']).float() # FP32 model model.append(ckpt.fuse().eval() if fuse else ckpt.eval()) # fused or un-fused model in eval mode