dgenerate-ultralytics-headless 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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dgenerate-ultralytics-headless
3
- Version: 8.3.169
3
+ Version: 8.3.170
4
4
  Summary: Automatically built Ultralytics package with python-opencv-headless dependency instead of python-opencv
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -1,14 +1,14 @@
1
- dgenerate_ultralytics_headless-8.3.169.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
1
+ dgenerate_ultralytics_headless-8.3.170.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
2
2
  tests/__init__.py,sha256=b4KP5_q-2IO8Br8YHOSLYnn7IwZS81l_vfEF2YPa2lM,894
3
3
  tests/conftest.py,sha256=LXtQJcFNWPGuzauTGkiXgsvVC3llJKfg22WcmhRzuQc,2593
4
4
  tests/test_cli.py,sha256=EMf5gTAopOnIz8VvzaM-Qb044o7D0flnUHYQ-2ffOM4,5670
5
5
  tests/test_cuda.py,sha256=-nQsfF3lGfqLm6cIeu_BCiXqLj7HzpL7R1GzPEc6z2I,8128
6
6
  tests/test_engine.py,sha256=Jpt2KVrltrEgh2-3Ykouz-2Z_2fza0eymL5ectRXadM,4922
7
- tests/test_exports.py,sha256=HmMKOTCia9ZDC0VYc_EPmvBTM5LM5eeI1NF_pKjLpd8,9677
7
+ tests/test_exports.py,sha256=hGUS29WDX9KvFS2PuX2c8NlHSmw3O5UFs0iBVoOqH5k,9690
8
8
  tests/test_integrations.py,sha256=kl_AKmE_Qs1GB0_91iVwbzNxofm_hFTt0zzU6JF-pg4,6323
9
9
  tests/test_python.py,sha256=-qvdeg-hEcKU5mWSDEU24iFZ-i8FAwQRznSXpkp6WQ4,27928
10
10
  tests/test_solutions.py,sha256=tuf6n_fsI8KvSdJrnc-cqP2qYdiYqCWuVrx0z9dOz3Q,13213
11
- ultralytics/__init__.py,sha256=4cDmvA4EGkWesc5wuiEUkFyDQsQLpWUYq2_7JUrJc38,730
11
+ ultralytics/__init__.py,sha256=KR0C3cGcq9H13HpaXEpZX1N1dJzQJ4H61fjTm_ef418,730
12
12
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
13
13
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
14
14
  ultralytics/cfg/__init__.py,sha256=VIpPHImhjb0XLJquGZrG_LBGZchtOtBSXR7HYTYV2GU,39602
@@ -122,7 +122,7 @@ ultralytics/data/scripts/get_imagenet.sh,sha256=hr42H16bM47iT27rgS7MpEo-GeOZAYUQ
122
122
  ultralytics/engine/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
123
123
  ultralytics/engine/exporter.py,sha256=mKAUcyX3C8lDFhkEu3T3kzkbODFEbH1_Wn1W2hMjw4Y,74878
124
124
  ultralytics/engine/model.py,sha256=877u2n0ISz2COOYtEMUqQe0E-HHB4Atb2DuH1XCE98k,53530
125
- ultralytics/engine/predictor.py,sha256=xxl1kdAzKrN8Y_5MQ5f92uFPeeRq1mYOl6hNlzpPjy8,22520
125
+ ultralytics/engine/predictor.py,sha256=iXnUB-tvBHtVpKbB-5EKs1wSREBIerdUxWx39MaFYuk,22485
126
126
  ultralytics/engine/results.py,sha256=QcHcbPVlLBiy_APwABr-T5K65HR8Bl1rRzxawjjP76E,71873
127
127
  ultralytics/engine/trainer.py,sha256=28FeqASvQRxCaK96SXDM-BfPJjqy5KNiWhf8v6GXTug,39785
128
128
  ultralytics/engine/tuner.py,sha256=sfQ8_yzgLNcGlKyz9b2vAzyggGZXiQzdZ5tKstyqjHM,12825
@@ -195,7 +195,7 @@ ultralytics/models/yolo/yoloe/train.py,sha256=XYpQYSnSD8vi_9VSj_S5oIsNUEqm3e66vP
195
195
  ultralytics/models/yolo/yoloe/train_seg.py,sha256=aCV7M8oQOvODFnU4piZdJh3tIrBJYAzZfRVRx1vRgxo,4956
196
196
  ultralytics/models/yolo/yoloe/val.py,sha256=yebPkxwKKt__cY05Zbh1YXg4_BKzzpcDc3Cv3FJ5SAA,9769
197
197
  ultralytics/nn/__init__.py,sha256=rjociYD9lo_K-d-1s6TbdWklPLjTcEHk7OIlRDJstIE,615
198
- ultralytics/nn/autobackend.py,sha256=_65yU6AIpmz1vV24oSNNMPIBmywPTQQdWF0pwHDHxiU,41628
198
+ ultralytics/nn/autobackend.py,sha256=wnIhA0tsgCn7berelnRvBRVLSV9Kz6ZPiryHavTkQNw,41789
199
199
  ultralytics/nn/tasks.py,sha256=jRUjYn1xz_LEa_zx6Upb0UpXvy0Bca1o5HEc7FCRgwM,72653
200
200
  ultralytics/nn/text_model.py,sha256=cYwD-0el4VeToDBP4iPFOQGqyEQatJOBHrVyONL3K_s,15282
201
201
  ultralytics/nn/modules/__init__.py,sha256=2nY0X69Z5DD5SWt6v3CUTZa5gXSzC9TQr3VTVqhyGho,3158
@@ -249,7 +249,7 @@ ultralytics/utils/instance.py,sha256=dC83rHvQXciAED3rOiScFs3BOX9OI06Ey1mj9sjUKvs
249
249
  ultralytics/utils/loss.py,sha256=fbOWc3Iu0QOJiWbi-mXWA9-1otTYlehtmUsI7os7ydM,39799
250
250
  ultralytics/utils/metrics.py,sha256=NX22CnIPqs7i_UAcf2D0-KQNNOoRu39OjLtjcbnWTN8,66296
251
251
  ultralytics/utils/ops.py,sha256=8d60fbpntrexK3gPoLUS6mWAYGrtrQaQCOYyRJsCjuI,34521
252
- ultralytics/utils/patches.py,sha256=tBAsNo_RyoFLL9OAzVuJmuoDLUJIPuTMByBYyblGG1A,6517
252
+ ultralytics/utils/patches.py,sha256=PPWiKzwGbCvuawLzDKVR8tWOQAlZbJBi8g_-A6eTCYA,6536
253
253
  ultralytics/utils/plotting.py,sha256=IEugKlTITLxArZjbSr7i_cTaHHAqNwVVk08Ak7I_ZdM,47169
254
254
  ultralytics/utils/tal.py,sha256=aXawOnhn8ni65tJWIW-PYqWr_TRvltbHBjrTo7o6lDQ,20924
255
255
  ultralytics/utils/torch_utils.py,sha256=D76Pvmw5OKh-vd4aJkOMO0dSLbM5WzGr7Hmds54hPEk,39233
@@ -266,8 +266,8 @@ ultralytics/utils/callbacks/neptune.py,sha256=j8pecmlcsM8FGzLKWoBw5xUsi5t8E5HuxY
266
266
  ultralytics/utils/callbacks/raytune.py,sha256=S6Bq16oQDQ8BQgnZzA0zJHGN_BBr8iAM_WtGoLiEcwg,1283
267
267
  ultralytics/utils/callbacks/tensorboard.py,sha256=MDPBW7aDes-66OE6YqKXXvqA_EocjzEMHWGM-8z9vUQ,5281
268
268
  ultralytics/utils/callbacks/wb.py,sha256=Tm_-aRr2CN32MJkY9tylpMBJkb007-MSRNSQ7rDJ5QU,7521
269
- dgenerate_ultralytics_headless-8.3.169.dist-info/METADATA,sha256=fB3xamJwWddK7ILU-aXztVwpG2n7b8JEw4gvWyTUnls,38672
270
- dgenerate_ultralytics_headless-8.3.169.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
271
- dgenerate_ultralytics_headless-8.3.169.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
272
- dgenerate_ultralytics_headless-8.3.169.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
273
- dgenerate_ultralytics_headless-8.3.169.dist-info/RECORD,,
269
+ dgenerate_ultralytics_headless-8.3.170.dist-info/METADATA,sha256=kQzWCYRwtJawOkHQr3WPRkD6UptLz_nC14gzTqWOTMc,38672
270
+ dgenerate_ultralytics_headless-8.3.170.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
271
+ dgenerate_ultralytics_headless-8.3.170.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
272
+ dgenerate_ultralytics_headless-8.3.170.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
273
+ dgenerate_ultralytics_headless-8.3.170.dist-info/RECORD,,
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: