ultralytics 8.3.90__py3-none-any.whl → 8.3.91__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
@@ -150,7 +150,7 @@ def test_export_coreml_matrix(task, dynamic, int8, half, batch):
150
150
  for task, dynamic, int8, half, batch, nms in product(
151
151
  TASKS, [False], [True, False], [True, False], [1], [True, False]
152
152
  )
153
- if not ((int8 and half) or (task == "classify" and nms))
153
+ if not ((int8 and half) or (task == "classify" and nms) or (ARM64 and nms))
154
154
  ],
155
155
  )
156
156
  def test_export_tflite_matrix(task, dynamic, int8, half, batch, nms):
@@ -213,7 +213,7 @@ def test_export_ncnn():
213
213
  YOLO(file)(SOURCE, imgsz=32) # exported model inference
214
214
 
215
215
 
216
- @pytest.mark.skipif(True, reason="Test disabled as keras and tensorflow version conflicts with tflite export.")
216
+ @pytest.mark.skipif(True, reason="Test disabled as keras and tensorflow version conflicts with TFlite export.")
217
217
  @pytest.mark.skipif(not LINUX or MACOS, reason="Skipping test on Windows and Macos")
218
218
  def test_export_imx():
219
219
  """Test YOLO exports to IMX format."""
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.90"
3
+ __version__ = "8.3.91"
4
4
 
5
5
  import os
6
6
 
ultralytics/data/utils.py CHANGED
@@ -434,8 +434,10 @@ def check_cls_dataset(dataset, split=""):
434
434
  test_set = data_dir / "test" if (data_dir / "test").exists() else None # data/val or data/test
435
435
  if split == "val" and not val_set:
436
436
  LOGGER.warning("WARNING ⚠️ Dataset 'split=val' not found, using 'split=test' instead.")
437
+ val_set = test_set
437
438
  elif split == "test" and not test_set:
438
439
  LOGGER.warning("WARNING ⚠️ Dataset 'split=test' not found, using 'split=val' instead.")
440
+ test_set = val_set
439
441
 
440
442
  nc = len([x for x in (data_dir / "train").glob("*") if x.is_dir()]) # number of classes
441
443
  names = [x.name for x in (data_dir / "train").iterdir() if x.is_dir()] # class names list
@@ -305,12 +305,13 @@ class Exporter:
305
305
  assert not getattr(model, "end2end", False), "TFLite INT8 export not supported for end2end models."
306
306
  if self.args.nms:
307
307
  assert not isinstance(model, ClassificationModel), "'nms=True' is not valid for classification models."
308
+ assert not (tflite and ARM64 and LINUX), "TFLite export with NMS unsupported on ARM64 Linux"
308
309
  if getattr(model, "end2end", False):
309
310
  LOGGER.warning("WARNING ⚠️ 'nms=True' is not available for end2end models. Forcing 'nms=False'.")
310
311
  self.args.nms = False
311
312
  self.args.conf = self.args.conf or 0.25 # set conf default value for nms export
312
313
  if edgetpu:
313
- if ARM64 and not LINUX:
314
+ if not LINUX or ARM64:
314
315
  raise SystemError(
315
316
  "Edge TPU export only supported on non-aarch64 Linux. See https://coral.ai/docs/edgetpu/compiler"
316
317
  )
@@ -332,7 +333,7 @@ class Exporter:
332
333
  f"Using default 'data={self.args.data}'."
333
334
  )
334
335
  if tfjs and (ARM64 and LINUX):
335
- raise SystemError("TensorFlow.js export not supported on ARM64 Linux")
336
+ raise SystemError("TF.js exports are not currently supported on ARM64 Linux")
336
337
 
337
338
  # Input
338
339
  im = torch.zeros(self.args.batch, 3, *self.imgsz).to(self.device)
@@ -997,9 +998,7 @@ class Exporter:
997
998
  try:
998
999
  import tensorflow as tf # noqa
999
1000
  except ImportError:
1000
- suffix = "-macos" if MACOS else "-aarch64" if ARM64 else "" if cuda else "-cpu"
1001
- version = ">=2.0.0"
1002
- check_requirements(f"tensorflow{suffix}{version}")
1001
+ check_requirements("tensorflow>=2.0.0")
1003
1002
  import tensorflow as tf # noqa
1004
1003
  check_requirements(
1005
1004
  (
@@ -1008,7 +1007,7 @@ class Exporter:
1008
1007
  "sng4onnx>=1.0.1", # required by 'onnx2tf' package
1009
1008
  "onnx_graphsurgeon>=0.3.26", # required by 'onnx2tf' package
1010
1009
  "onnx>=1.12.0",
1011
- "onnx2tf>1.17.5,<=1.26.3",
1010
+ "onnx2tf>=1.26.3",
1012
1011
  "onnxslim>=0.1.31",
1013
1012
  "tflite_support<=0.4.3" if IS_JETSON else "tflite_support", # fix ImportError 'GLIBCXX_3.4.29'
1014
1013
  "flatbuffers>=23.5.26,<100", # update old 'flatbuffers' included inside tensorflow package
@@ -378,6 +378,12 @@ def _log_model(experiment, trainer) -> None:
378
378
  experiment.log_model(model_name, file_or_folder=str(trainer.best), file_name="best.pt", overwrite=True)
379
379
 
380
380
 
381
+ def _log_image_batches(experiment, trainer, curr_step: int) -> None:
382
+ """Log samples of images batches for train, validation, and test."""
383
+ _log_images(experiment, trainer.save_dir.glob("train_batch*.jpg"), curr_step)
384
+ _log_images(experiment, trainer.save_dir.glob("val_batch*.jpg"), curr_step)
385
+
386
+
381
387
  def on_pretrain_routine_start(trainer) -> None:
382
388
  """Creates or resumes a CometML experiment at the start of a YOLO pre-training routine."""
383
389
  _resume_or_create_experiment(trainer.args)
@@ -441,8 +447,7 @@ def on_train_end(trainer) -> None:
441
447
 
442
448
  _log_confusion_matrix(experiment, trainer, curr_step, curr_epoch)
443
449
  _log_image_predictions(experiment, trainer.validator, curr_step)
444
- _log_images(experiment, trainer.save_dir.glob("train_batch*.jpg"), curr_step)
445
- _log_images(experiment, trainer.save_dir.glob("val_batch*.jpg"), curr_step)
450
+ _log_image_batches(experiment, trainer, curr_step)
446
451
  experiment.end()
447
452
 
448
453
  global _comet_image_prediction_count
@@ -713,6 +713,7 @@ def plot_images(
713
713
 
714
714
  # Annotate
715
715
  fs = int((h + w) * ns * 0.01) # font size
716
+ fs = max(fs, 18) # ensure that the font size is large enough to be easily readable.
716
717
  annotator = Annotator(mosaic, line_width=round(fs / 10), font_size=fs, pil=True, example=names)
717
718
  for i in range(bs):
718
719
  x, y = int(w * (i // ns)), int(h * (i % ns)) # block origin
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ultralytics
3
- Version: 8.3.90
3
+ Version: 8.3.91
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=4bGHH7rCUSlnvcr8erlpd8vjjsyf7f2pptMjULEhly4,2982
3
3
  tests/test_cli.py,sha256=DPxUjcGAex_cmGMNaRIK7mT7wrILWaPBtlfXuHQpveI,5284
4
4
  tests/test_cuda.py,sha256=0uvTF4bY_Grsd_Xgtp7TdIEgMpUqKv8_kWA82NYDl_g,6260
5
5
  tests/test_engine.py,sha256=aGqZ8P7QO5C_nOa1b4FOyk92Ysdk5WiP-ST310Vyxys,4962
6
- tests/test_exports.py,sha256=dpUT_FXFXzFoItfZwbxkPFXgEfaVqyfYwkIQW4teL38,9223
6
+ tests/test_exports.py,sha256=2UIeIVJTpBAql_XYFCKcZg7OPlwlzYnaSqOKjalHuSg,9242
7
7
  tests/test_integrations.py,sha256=ZgpddWHEVqiP4bGhVw8fLc2wdz0rCxuxr0FQ2dTgnIE,6067
8
8
  tests/test_python.py,sha256=SZQyhwWcgXtte4VKbwf77h15D-tb0CEyiWaJpaxbkGc,22992
9
9
  tests/test_solutions.py,sha256=xh5cPoQ8Ht0rNbdalWW8C3f0f_-asgu4aZSiMMn3yRY,5134
10
- ultralytics/__init__.py,sha256=FDJXModJiBK1ydrn5TxJY7cQW7hzwpO2j5Xwb4kPQrk,709
10
+ ultralytics/__init__.py,sha256=24X8o66s-8ZyaqLudin9r4TG-ghbPgFenxLQOT333yQ,709
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=q5fPqB4xjhjeRO4x84lCELyWPHgO8nCi-pQyg13ESjo,39908
@@ -105,9 +105,9 @@ ultralytics/data/converter.py,sha256=QHCXroWL_6Mc-4DudX773V09NQVEGR1wVTOJvYJ9YIU
105
105
  ultralytics/data/dataset.py,sha256=VX89-X8F-_yi0bWRdPBpDd837OPFCevlYikkouAgvLg,27919
106
106
  ultralytics/data/loaders.py,sha256=_Gyp_BfGTZwsFdn4UnolXxdU_sAYZLIrv0L2TRI9R5g,28627
107
107
  ultralytics/data/split_dota.py,sha256=J3cGfIMC4K_mFYX0G0XfRwJIwe_8nMjwDlv4mvdqFgA,11872
108
- ultralytics/data/utils.py,sha256=9cRHUQG0oJC_MyMNN-_3NcWiIWSmGe2d1f_N-mAt32o,33087
108
+ ultralytics/data/utils.py,sha256=uNLBG9rhL8JT7k8XQI3Wup3ct8e9JLWzabD6iaUFEms,33141
109
109
  ultralytics/engine/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
110
- ultralytics/engine/exporter.py,sha256=7G6EHfz1x9mOFXVUFabqPkoVMgqw1MtzJvDpIsS8RG8,77524
110
+ ultralytics/engine/exporter.py,sha256=bcNcmSday8YtvC8jdcIzjpk87MxcBL_mcxGMkqBX3RQ,77492
111
111
  ultralytics/engine/model.py,sha256=5oR7GAlpCegbOj4h1y-7hKB0YIJFoRbxwA_CufWvaC8,52902
112
112
  ultralytics/engine/predictor.py,sha256=q36ByW23geuLJWiBHi4uD5Qyn4RbfgZP7zxJ_tAfPI8,21626
113
113
  ultralytics/engine/results.py,sha256=NdnBvWCNDyfOPe7XwSWqhBppV2GmXEMH9LBbkeJ4Vjc,79620
@@ -226,7 +226,7 @@ ultralytics/utils/loss.py,sha256=NKisGlygcaDkBjHcH0Y2G6TpcNKjb7iZ_Dt6WQctNLE,343
226
226
  ultralytics/utils/metrics.py,sha256=mCQwIH3am95OR3yvHWTqWAD0Unal7n2MYg4liFFygbA,53669
227
227
  ultralytics/utils/ops.py,sha256=BXoGiBgQbNcU5DSWq8glnVy_8SMkxAn-P9L1o2xTqOQ,34215
228
228
  ultralytics/utils/patches.py,sha256=z72pAlENS3M-SzcSDyolDpwphMrq4XkXXryaIOYwTCo,3327
229
- ultralytics/utils/plotting.py,sha256=dq8WOs98ie7bN0UTkt1ltjB5j4y2Fn4UEXx_hZYTBbg,46615
229
+ ultralytics/utils/plotting.py,sha256=zQNo_nSAxOMoki7XwwlP7i08kr8n0FY_mSnhSvdTkv4,46704
230
230
  ultralytics/utils/tal.py,sha256=DuXTErnOn_tXKi9XgS9h_vr_Czn0EO6CKhTtg8gQMwI,20809
231
231
  ultralytics/utils/torch_utils.py,sha256=uklVi3U5QEKx0zNB-5e55Pf3kbk9NzB-ZdJ4UxUvIo0,38569
232
232
  ultralytics/utils/triton.py,sha256=BkOqRroVsY7NbDgX-bJkavgm7CaieXRhN1LweleVFg4,4568
@@ -234,7 +234,7 @@ ultralytics/utils/tuner.py,sha256=mJLrORb67FqnTvKD5Y3dM7LxhkMcJpZwWVYfv9yfQ8w,59
234
234
  ultralytics/utils/callbacks/__init__.py,sha256=hzL63Rce6VkZhP4Lcim9LKjadixaQG86nKqPhk7IkS0,242
235
235
  ultralytics/utils/callbacks/base.py,sha256=QMdltbVe806lekq-w_7ohpXysoZjuB8gStZ14wPaS78,5877
236
236
  ultralytics/utils/callbacks/clearml.py,sha256=jxTL2QSt8Cjp_BkK2XUDPg5t2XnykMYXJFRp6B66ulA,6005
237
- ultralytics/utils/callbacks/comet.py,sha256=T54YMbMBo7XcJtjqzOs88ZAVaYLVsPkVdGT3FtNruhI,17851
237
+ ultralytics/utils/callbacks/comet.py,sha256=GoEuJQLJE9MRf5vYO0Swy6bUV86SUBe2fZo7hznPx84,18050
238
238
  ultralytics/utils/callbacks/dvc.py,sha256=tF8oN8_zkXVsjxQmZjUK4klB9I2I-oRdLxkIr1afCys,5168
239
239
  ultralytics/utils/callbacks/hub.py,sha256=dPSeSStRE1x-WYyqrUghCp_VtBxNZ5-Bmb4wW2KYV2Y,4073
240
240
  ultralytics/utils/callbacks/mlflow.py,sha256=olMilfFKKLb9X53sJxFCn-AHnbcvTmXwtU_CVqSqzeE,5434
@@ -242,9 +242,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=TQDHJsgAdnMtSdLeQyVTJ1zBdvuwLm-U4U
242
242
  ultralytics/utils/callbacks/raytune.py,sha256=p0eGb8UACfnPzZ_bB287NjSd-UmSHF5zAFYKPwVJhj0,706
243
243
  ultralytics/utils/callbacks/tensorboard.py,sha256=rnyja6LpSyixwuL0WKovgARe6RPiX8ORuknlre3VEu4,4255
244
244
  ultralytics/utils/callbacks/wb.py,sha256=sMlA0dTcv3krDd3ppGSgw-wXIo64sPOv9RgdghAsP5k,6851
245
- ultralytics-8.3.90.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
246
- ultralytics-8.3.90.dist-info/METADATA,sha256=_0BW37WK36q83YVVWlecmROciBjya4PCSP2z3NHnNyY,35169
247
- ultralytics-8.3.90.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
248
- ultralytics-8.3.90.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
249
- ultralytics-8.3.90.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
250
- ultralytics-8.3.90.dist-info/RECORD,,
245
+ ultralytics-8.3.91.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
246
+ ultralytics-8.3.91.dist-info/METADATA,sha256=XfI5zPopBIEHReHKtKZgs5x8RYHrkMhwSWbg7ONT9QE,35169
247
+ ultralytics-8.3.91.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
248
+ ultralytics-8.3.91.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
249
+ ultralytics-8.3.91.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
250
+ ultralytics-8.3.91.dist-info/RECORD,,