ultralytics 8.3.169__py3-none-any.whl → 8.3.170__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
tests/test_exports.py CHANGED
@@ -71,7 +71,7 @@ def test_export_openvino_matrix(task, dynamic, int8, half, batch, nms):
71
71
  # See https://github.com/ultralytics/ultralytics/actions/runs/8957949304/job/24601616830?pr=10423
72
72
  file = Path(file)
73
73
  file = file.rename(file.with_stem(f"{file.stem}-{uuid.uuid4()}"))
74
- YOLO(file)([SOURCE] * batch, imgsz=64 if dynamic else 32) # exported model inference
74
+ YOLO(file)([SOURCE] * batch, imgsz=64 if dynamic else 32, batch=batch) # exported model inference
75
75
  shutil.rmtree(file, ignore_errors=True) # retry in case of potential lingering multi-threaded file usage errors
76
76
 
77
77
 
ultralytics/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.169"
3
+ __version__ = "8.3.170"
4
4
 
5
5
  import os
6
6
 
@@ -394,7 +394,6 @@ class BasePredictor:
394
394
  dnn=self.args.dnn,
395
395
  data=self.args.data,
396
396
  fp16=self.args.half,
397
- batch=self.args.batch,
398
397
  fuse=True,
399
398
  verbose=verbose,
400
399
  )
@@ -139,7 +139,6 @@ class AutoBackend(nn.Module):
139
139
  dnn: bool = False,
140
140
  data: Optional[Union[str, Path]] = None,
141
141
  fp16: bool = False,
142
- batch: int = 1,
143
142
  fuse: bool = True,
144
143
  verbose: bool = True,
145
144
  ):
@@ -152,7 +151,6 @@ class AutoBackend(nn.Module):
152
151
  dnn (bool): Use OpenCV DNN module for ONNX inference.
153
152
  data (str | Path, optional): Path to the additional data.yaml file containing class names.
154
153
  fp16 (bool): Enable half-precision inference. Supported only on specific backends.
155
- batch (int): Batch-size to assume for inference.
156
154
  fuse (bool): Fuse Conv2D + BatchNorm layers for optimization.
157
155
  verbose (bool): Enable verbose logging.
158
156
  """
@@ -311,16 +309,22 @@ class AutoBackend(nn.Module):
311
309
  if ov_model.get_parameters()[0].get_layout().empty:
312
310
  ov_model.get_parameters()[0].set_layout(ov.Layout("NCHW"))
313
311
 
312
+ metadata = w.parent / "metadata.yaml"
313
+ if metadata.exists():
314
+ metadata = YAML.load(metadata)
315
+ batch = metadata["batch"]
316
+ dynamic = metadata.get("args", {}).get("dynamic", dynamic)
314
317
  # OpenVINO inference modes are 'LATENCY', 'THROUGHPUT' (not recommended), or 'CUMULATIVE_THROUGHPUT'
315
- inference_mode = "CUMULATIVE_THROUGHPUT" if batch > 1 else "LATENCY"
316
- LOGGER.info(f"Using OpenVINO {inference_mode} mode for batch={batch} inference...")
318
+ inference_mode = "CUMULATIVE_THROUGHPUT" if batch > 1 and dynamic else "LATENCY"
317
319
  ov_compiled_model = core.compile_model(
318
320
  ov_model,
319
321
  device_name=device_name,
320
322
  config={"PERFORMANCE_HINT": inference_mode},
321
323
  )
324
+ LOGGER.info(
325
+ f"Using OpenVINO {inference_mode} mode for batch={batch} inference on {', '.join(ov_compiled_model.get_property('EXECUTION_DEVICES'))}..."
326
+ )
322
327
  input_name = ov_compiled_model.input().get_any_name()
323
- metadata = w.parent / "metadata.yaml"
324
328
 
325
329
  # TensorRT
326
330
  elif engine:
@@ -397,7 +401,6 @@ class AutoBackend(nn.Module):
397
401
  im = torch.from_numpy(np.empty(shape, dtype=dtype)).to(device)
398
402
  bindings[name] = Binding(name, dtype, shape, im, int(im.data_ptr()))
399
403
  binding_addrs = OrderedDict((n, d.ptr) for n, d in bindings.items())
400
- batch_size = bindings["images"].shape[0] # if dynamic, this is instead max batch size
401
404
 
402
405
  # CoreML
403
406
  elif coreml:
@@ -695,8 +698,8 @@ class AutoBackend(nn.Module):
695
698
  # Start async inference with userdata=i to specify the position in results list
696
699
  async_queue.start_async(inputs={self.input_name: im[i : i + 1]}, userdata=i) # keep image as BCHW
697
700
  async_queue.wait_all() # wait for all inference requests to complete
698
- y = np.concatenate([list(r.values())[0] for r in results])
699
-
701
+ y = [list(r.values()) for r in results]
702
+ y = [np.concatenate(x) for x in zip(*y)]
700
703
  else: # inference_mode = "LATENCY", optimized for fastest first result at batch-size 1
701
704
  y = list(self.ov_compiled_model(im).values())
702
705
 
@@ -39,7 +39,7 @@ def imread(filename: str, flags: int = cv2.IMREAD_COLOR) -> Optional[np.ndarray]
39
39
  return None
40
40
  else:
41
41
  im = cv2.imdecode(file_bytes, flags)
42
- return im[..., None] if im.ndim == 2 else im # Always ensure 3 dimensions
42
+ return im[..., None] if im is not None and im.ndim == 2 else im # Always ensure 3 dimensions
43
43
 
44
44
 
45
45
  def imwrite(filename: str, img: np.ndarray, params: Optional[List[int]] = None) -> bool:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.169
3
+ Version: 8.3.170
4
4
  Summary: Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -3,11 +3,11 @@ tests/conftest.py,sha256=LXtQJcFNWPGuzauTGkiXgsvVC3llJKfg22WcmhRzuQc,2593
3
3
  tests/test_cli.py,sha256=EMf5gTAopOnIz8VvzaM-Qb044o7D0flnUHYQ-2ffOM4,5670
4
4
  tests/test_cuda.py,sha256=-nQsfF3lGfqLm6cIeu_BCiXqLj7HzpL7R1GzPEc6z2I,8128
5
5
  tests/test_engine.py,sha256=Jpt2KVrltrEgh2-3Ykouz-2Z_2fza0eymL5ectRXadM,4922
6
- tests/test_exports.py,sha256=HmMKOTCia9ZDC0VYc_EPmvBTM5LM5eeI1NF_pKjLpd8,9677
6
+ tests/test_exports.py,sha256=hGUS29WDX9KvFS2PuX2c8NlHSmw3O5UFs0iBVoOqH5k,9690
7
7
  tests/test_integrations.py,sha256=kl_AKmE_Qs1GB0_91iVwbzNxofm_hFTt0zzU6JF-pg4,6323
8
8
  tests/test_python.py,sha256=-qvdeg-hEcKU5mWSDEU24iFZ-i8FAwQRznSXpkp6WQ4,27928
9
9
  tests/test_solutions.py,sha256=tuf6n_fsI8KvSdJrnc-cqP2qYdiYqCWuVrx0z9dOz3Q,13213
10
- ultralytics/__init__.py,sha256=4cDmvA4EGkWesc5wuiEUkFyDQsQLpWUYq2_7JUrJc38,730
10
+ ultralytics/__init__.py,sha256=KR0C3cGcq9H13HpaXEpZX1N1dJzQJ4H61fjTm_ef418,730
11
11
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
12
12
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
13
13
  ultralytics/cfg/__init__.py,sha256=VIpPHImhjb0XLJquGZrG_LBGZchtOtBSXR7HYTYV2GU,39602
@@ -121,7 +121,7 @@ ultralytics/data/scripts/get_imagenet.sh,sha256=hr42H16bM47iT27rgS7MpEo-GeOZAYUQ
121
121
  ultralytics/engine/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
122
122
  ultralytics/engine/exporter.py,sha256=mKAUcyX3C8lDFhkEu3T3kzkbODFEbH1_Wn1W2hMjw4Y,74878
123
123
  ultralytics/engine/model.py,sha256=877u2n0ISz2COOYtEMUqQe0E-HHB4Atb2DuH1XCE98k,53530
124
- ultralytics/engine/predictor.py,sha256=xxl1kdAzKrN8Y_5MQ5f92uFPeeRq1mYOl6hNlzpPjy8,22520
124
+ ultralytics/engine/predictor.py,sha256=iXnUB-tvBHtVpKbB-5EKs1wSREBIerdUxWx39MaFYuk,22485
125
125
  ultralytics/engine/results.py,sha256=QcHcbPVlLBiy_APwABr-T5K65HR8Bl1rRzxawjjP76E,71873
126
126
  ultralytics/engine/trainer.py,sha256=28FeqASvQRxCaK96SXDM-BfPJjqy5KNiWhf8v6GXTug,39785
127
127
  ultralytics/engine/tuner.py,sha256=sfQ8_yzgLNcGlKyz9b2vAzyggGZXiQzdZ5tKstyqjHM,12825
@@ -194,7 +194,7 @@ ultralytics/models/yolo/yoloe/train.py,sha256=XYpQYSnSD8vi_9VSj_S5oIsNUEqm3e66vP
194
194
  ultralytics/models/yolo/yoloe/train_seg.py,sha256=aCV7M8oQOvODFnU4piZdJh3tIrBJYAzZfRVRx1vRgxo,4956
195
195
  ultralytics/models/yolo/yoloe/val.py,sha256=yebPkxwKKt__cY05Zbh1YXg4_BKzzpcDc3Cv3FJ5SAA,9769
196
196
  ultralytics/nn/__init__.py,sha256=rjociYD9lo_K-d-1s6TbdWklPLjTcEHk7OIlRDJstIE,615
197
- ultralytics/nn/autobackend.py,sha256=_65yU6AIpmz1vV24oSNNMPIBmywPTQQdWF0pwHDHxiU,41628
197
+ ultralytics/nn/autobackend.py,sha256=wnIhA0tsgCn7berelnRvBRVLSV9Kz6ZPiryHavTkQNw,41789
198
198
  ultralytics/nn/tasks.py,sha256=jRUjYn1xz_LEa_zx6Upb0UpXvy0Bca1o5HEc7FCRgwM,72653
199
199
  ultralytics/nn/text_model.py,sha256=cYwD-0el4VeToDBP4iPFOQGqyEQatJOBHrVyONL3K_s,15282
200
200
  ultralytics/nn/modules/__init__.py,sha256=2nY0X69Z5DD5SWt6v3CUTZa5gXSzC9TQr3VTVqhyGho,3158
@@ -248,7 +248,7 @@ ultralytics/utils/instance.py,sha256=dC83rHvQXciAED3rOiScFs3BOX9OI06Ey1mj9sjUKvs
248
248
  ultralytics/utils/loss.py,sha256=fbOWc3Iu0QOJiWbi-mXWA9-1otTYlehtmUsI7os7ydM,39799
249
249
  ultralytics/utils/metrics.py,sha256=NX22CnIPqs7i_UAcf2D0-KQNNOoRu39OjLtjcbnWTN8,66296
250
250
  ultralytics/utils/ops.py,sha256=8d60fbpntrexK3gPoLUS6mWAYGrtrQaQCOYyRJsCjuI,34521
251
- ultralytics/utils/patches.py,sha256=tBAsNo_RyoFLL9OAzVuJmuoDLUJIPuTMByBYyblGG1A,6517
251
+ ultralytics/utils/patches.py,sha256=PPWiKzwGbCvuawLzDKVR8tWOQAlZbJBi8g_-A6eTCYA,6536
252
252
  ultralytics/utils/plotting.py,sha256=IEugKlTITLxArZjbSr7i_cTaHHAqNwVVk08Ak7I_ZdM,47169
253
253
  ultralytics/utils/tal.py,sha256=aXawOnhn8ni65tJWIW-PYqWr_TRvltbHBjrTo7o6lDQ,20924
254
254
  ultralytics/utils/torch_utils.py,sha256=D76Pvmw5OKh-vd4aJkOMO0dSLbM5WzGr7Hmds54hPEk,39233
@@ -265,9 +265,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=j8pecmlcsM8FGzLKWoBw5xUsi5t8E5HuxY
265
265
  ultralytics/utils/callbacks/raytune.py,sha256=S6Bq16oQDQ8BQgnZzA0zJHGN_BBr8iAM_WtGoLiEcwg,1283
266
266
  ultralytics/utils/callbacks/tensorboard.py,sha256=MDPBW7aDes-66OE6YqKXXvqA_EocjzEMHWGM-8z9vUQ,5281
267
267
  ultralytics/utils/callbacks/wb.py,sha256=Tm_-aRr2CN32MJkY9tylpMBJkb007-MSRNSQ7rDJ5QU,7521
268
- ultralytics-8.3.169.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
269
- ultralytics-8.3.169.dist-info/METADATA,sha256=sph15jWqUk8QTPjuJ7pEa1e45rfOlLPS_6D0gbVx4-o,37576
270
- ultralytics-8.3.169.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
271
- ultralytics-8.3.169.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
272
- ultralytics-8.3.169.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
273
- ultralytics-8.3.169.dist-info/RECORD,,
268
+ ultralytics-8.3.170.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
269
+ ultralytics-8.3.170.dist-info/METADATA,sha256=DPqQcsMjDKxYsAP5P9NFgqN5-jNmvQEGr-JNlPkXSj8,37576
270
+ ultralytics-8.3.170.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
271
+ ultralytics-8.3.170.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
272
+ ultralytics-8.3.170.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
273
+ ultralytics-8.3.170.dist-info/RECORD,,