ultralytics 8.3.90__py3-none-any.whl → 8.3.92__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."""
tests/test_python.py CHANGED
@@ -209,10 +209,13 @@ def test_train_scratch():
209
209
  model(SOURCE)
210
210
 
211
211
 
212
- def test_train_pretrained():
212
+ @pytest.mark.parametrize("scls", [False, True])
213
+ def test_train_pretrained(scls):
213
214
  """Test training of the YOLO model starting from a pre-trained checkpoint."""
214
215
  model = YOLO(WEIGHTS_DIR / "yolo11n-seg.pt")
215
- model.train(data="coco8-seg.yaml", epochs=1, imgsz=32, cache="ram", copy_paste=0.5, mixup=0.5, name=0)
216
+ model.train(
217
+ data="coco8-seg.yaml", epochs=1, imgsz=32, cache="ram", copy_paste=0.5, mixup=0.5, name=0, single_cls=scls
218
+ )
216
219
  model(SOURCE)
217
220
 
218
221
 
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.92"
4
4
 
5
5
  import os
6
6
 
@@ -116,6 +116,7 @@ class YOLODataset(BaseDataset):
116
116
  repeat(len(self.data["names"])),
117
117
  repeat(nkpt),
118
118
  repeat(ndim),
119
+ repeat(self.single_cls),
119
120
  ),
120
121
  )
121
122
  pbar = TQDM(results, desc=desc, total=total)
ultralytics/data/utils.py CHANGED
@@ -96,7 +96,7 @@ def verify_image(args):
96
96
 
97
97
  def verify_image_label(args):
98
98
  """Verify one image-label pair."""
99
- im_file, lb_file, prefix, keypoint, num_cls, nkpt, ndim = args
99
+ im_file, lb_file, prefix, keypoint, num_cls, nkpt, ndim, single_cls = args
100
100
  # Number (missing, found, empty, corrupt), message, segments, keypoints
101
101
  nm, nf, ne, nc, msg, segments, keypoints = 0, 0, 0, 0, "", [], None
102
102
  try:
@@ -135,6 +135,8 @@ def verify_image_label(args):
135
135
  assert lb.min() >= 0, f"negative label values {lb[lb < 0]}"
136
136
 
137
137
  # All labels
138
+ if single_cls:
139
+ lb[:, 0] = 0
138
140
  max_cls = lb[:, 0].max() # max label count
139
141
  assert max_cls < num_cls, (
140
142
  f"Label class {int(max_cls)} exceeds dataset class count {num_cls}. "
@@ -434,8 +436,10 @@ def check_cls_dataset(dataset, split=""):
434
436
  test_set = data_dir / "test" if (data_dir / "test").exists() else None # data/val or data/test
435
437
  if split == "val" and not val_set:
436
438
  LOGGER.warning("WARNING ⚠️ Dataset 'split=val' not found, using 'split=test' instead.")
439
+ val_set = test_set
437
440
  elif split == "test" and not test_set:
438
441
  LOGGER.warning("WARNING ⚠️ Dataset 'split=test' not found, using 'split=val' instead.")
442
+ test_set = val_set
439
443
 
440
444
  nc = len([x for x in (data_dir / "train").glob("*") if x.is_dir()]) # number of classes
441
445
  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
  (
@@ -1007,8 +1006,9 @@ class Exporter:
1007
1006
  "tf_keras", # required by 'onnx2tf' package
1008
1007
  "sng4onnx>=1.0.1", # required by 'onnx2tf' package
1009
1008
  "onnx_graphsurgeon>=0.3.26", # required by 'onnx2tf' package
1009
+ "ai-edge-litert>=1.2.0", # required by 'onnx2tf' package
1010
1010
  "onnx>=1.12.0",
1011
- "onnx2tf>1.17.5,<=1.26.3",
1011
+ "onnx2tf>=1.26.3",
1012
1012
  "onnxslim>=0.1.31",
1013
1013
  "tflite_support<=0.4.3" if IS_JETSON else "tflite_support", # fix ImportError 'GLIBCXX_3.4.29'
1014
1014
  "flatbuffers>=23.5.26,<100", # update old 'flatbuffers' included inside tensorflow package
@@ -472,6 +472,7 @@ class Results(SimpleClass):
472
472
  save=False,
473
473
  filename=None,
474
474
  color_mode="class",
475
+ txt_color=(255, 255, 255),
475
476
  ):
476
477
  """
477
478
  Plots detection results on an input RGB image.
@@ -494,6 +495,7 @@ class Results(SimpleClass):
494
495
  save (bool): Whether to save the annotated image.
495
496
  filename (str | None): Filename to save image if save is True.
496
497
  color_mode (bool): Specify the color mode, e.g., 'instance' or 'class'. Default to 'class'.
498
+ txt_color (tuple[int, int, int]): Specify the RGB text color for classification task
497
499
 
498
500
  Returns:
499
501
  (np.ndarray): Annotated image as a numpy array.
@@ -569,7 +571,7 @@ class Results(SimpleClass):
569
571
  if pred_probs is not None and show_probs:
570
572
  text = ",\n".join(f"{names[j] if names else j} {pred_probs.data[j]:.2f}" for j in pred_probs.top5)
571
573
  x = round(self.orig_shape[0] * 0.03)
572
- annotator.text([x, x], text, txt_color=(255, 255, 255)) # TODO: allow setting colors
574
+ annotator.text([x, x], text, txt_color=txt_color)
573
575
 
574
576
  # Plot Pose results
575
577
  if self.keypoints is not None:
@@ -126,7 +126,7 @@ class HUBTrainingSession:
126
126
 
127
127
  self.model_url = f"{HUB_WEB_ROOT}/models/{self.model.id}"
128
128
  if self.model.is_trained():
129
- print(emojis(f"Loading trained HUB model {self.model_url} 🚀"))
129
+ LOGGER.info(f"Loading trained HUB model {self.model_url} 🚀")
130
130
  url = self.model.get_weights_url("best") # download URL with auth
131
131
  self.model_file = checks.check_file(url, download_dir=Path(SETTINGS["weights_dir"]) / "hub" / self.model.id)
132
132
  return
@@ -281,7 +281,7 @@ class AutoBackend(nn.Module):
281
281
  elif engine:
282
282
  LOGGER.info(f"Loading {w} for TensorRT inference...")
283
283
 
284
- if IS_JETSON and PYTHON_VERSION <= "3.8.0":
284
+ if IS_JETSON and check_version(PYTHON_VERSION, "<=3.8.0"):
285
285
  # fix error: `np.bool` was a deprecated alias for the builtin `bool` for JetPack 4 with Python <= 3.8.0
286
286
  check_requirements("numpy==1.23.5")
287
287
 
@@ -947,7 +947,7 @@ class TryExcept(contextlib.ContextDecorator):
947
947
  def __exit__(self, exc_type, value, traceback):
948
948
  """Defines behavior when exiting a 'with' block, prints error message if necessary."""
949
949
  if self.verbose and value:
950
- print(emojis(f"{self.msg}{': ' if self.msg else ''}{value}"))
950
+ LOGGER.warning(f"{self.msg}{': ' if self.msg else ''}{value}")
951
951
  return True
952
952
 
953
953
 
@@ -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.92
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
- tests/test_python.py,sha256=SZQyhwWcgXtte4VKbwf77h15D-tb0CEyiWaJpaxbkGc,22992
8
+ tests/test_python.py,sha256=qfAjIhZ8R-g6QLtAo_bSf77U_7LexVKwstZlmoze5WI,23075
9
9
  tests/test_solutions.py,sha256=xh5cPoQ8Ht0rNbdalWW8C3f0f_-asgu4aZSiMMn3yRY,5134
10
- ultralytics/__init__.py,sha256=FDJXModJiBK1ydrn5TxJY7cQW7hzwpO2j5Xwb4kPQrk,709
10
+ ultralytics/__init__.py,sha256=BmyXModBmwZ8NeWAOryh1HvosnjXbv6A7cOoNsCRwk0,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
@@ -102,21 +102,21 @@ ultralytics/data/augment.py,sha256=wlAbsWqmDIfSB4Ys4iN354FTTnH7SmHueUH19j7JpF4,1
102
102
  ultralytics/data/base.py,sha256=kILHN-GWQnIzauJCubZsDVQisR_teql03XUBwZKGePg,18449
103
103
  ultralytics/data/build.py,sha256=56pavLie6PDFEVYChMxnGQGtGsxozYZRpFqC70DRGls,9650
104
104
  ultralytics/data/converter.py,sha256=QHCXroWL_6Mc-4DudX773V09NQVEGR1wVTOJvYJ9YIU,24657
105
- ultralytics/data/dataset.py,sha256=VX89-X8F-_yi0bWRdPBpDd837OPFCevlYikkouAgvLg,27919
105
+ ultralytics/data/dataset.py,sha256=ZytVBYRGKP6aUJpt7fDnBH_j9Sz_xABLNy1lWgNPOtM,27964
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=aRPwIoLrCML_Kcd0dI9B6c5Ct4dvhdF36rDHtuf7Ww4,33217
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=_4hmCm3MmHXtmBm80uiqISNs9jn9Up7T1TG1q7vQ0T4,77566
111
111
  ultralytics/engine/model.py,sha256=5oR7GAlpCegbOj4h1y-7hKB0YIJFoRbxwA_CufWvaC8,52902
112
112
  ultralytics/engine/predictor.py,sha256=q36ByW23geuLJWiBHi4uD5Qyn4RbfgZP7zxJ_tAfPI8,21626
113
- ultralytics/engine/results.py,sha256=NdnBvWCNDyfOPe7XwSWqhBppV2GmXEMH9LBbkeJ4Vjc,79620
113
+ ultralytics/engine/results.py,sha256=rV4RG5wfZCv86Y2vVwt-J6Xx7YO20rxLebelZaHGXnk,79716
114
114
  ultralytics/engine/trainer.py,sha256=fLdNmy0FNvoOxkFNh5yc8LR82Z-h5eGaj-fYLVvqbkM,38376
115
115
  ultralytics/engine/tuner.py,sha256=W0e8jMb2GbGUBh33T_dMsWd0vvL_IEpih1Qk7FnxjGw,12205
116
116
  ultralytics/engine/validator.py,sha256=xTAssIEj_xC4cZOT9_HVHv1krxz7yROWAuID_Xt9hng,16974
117
117
  ultralytics/hub/__init__.py,sha256=NuuvSXWvCllF-Mbvet8uipHqhZF5c-Ycv4NOTByfpig,5579
118
118
  ultralytics/hub/auth.py,sha256=QShM9RGDwaNgZlNLfLg9Ui-awj55fTRRK9yFDGlwwZ8,5556
119
- ultralytics/hub/session.py,sha256=iuu3xhQ5DsFCP5udwH4qBdxXPrRhbryfqcAA9gALHqI,18733
119
+ ultralytics/hub/session.py,sha256=o-mERf4Dtx7rL__fXXQQf_88mvGf6DbU4Ogb75Jrd8g,18731
120
120
  ultralytics/hub/utils.py,sha256=V0N-K-n2cd9lJt_uyue3lsPyjx8-hVAqXauQX3oBE0w,9642
121
121
  ultralytics/hub/google/__init__.py,sha256=jnWMostygAHmZCKjPwalymkNDXQC4bj9-4K6-ay7csA,7532
122
122
  ultralytics/models/__init__.py,sha256=Dtj85wDqat2lgdtCYzGrC1Q5kPQrqk0RPcAhMmWKCXs,293
@@ -177,7 +177,7 @@ ultralytics/models/yolo/world/__init__.py,sha256=nlh8I6t8hMGz_vZg8QSlsUW1R-2eKvn
177
177
  ultralytics/models/yolo/world/train.py,sha256=0YdzItDE2iCmWRq8E9AzD9CwjQ176ZQZPHhXwoUYY7c,4876
178
178
  ultralytics/models/yolo/world/train_world.py,sha256=Cnu5AkwSVIwvmotF7OQ7Zw5nF1UWjAb8QvfSVMVMLtA,6360
179
179
  ultralytics/nn/__init__.py,sha256=rjociYD9lo_K-d-1s6TbdWklPLjTcEHk7OIlRDJstIE,615
180
- ultralytics/nn/autobackend.py,sha256=fQWEpjQbrxZFPdKp1RFsV93QsgnlGgbo0lEDAgRi7gA,38106
180
+ ultralytics/nn/autobackend.py,sha256=nsszyvtiO2hzu16wnV8rK6Wga3OTc9g2o_nxg18WycY,38121
181
181
  ultralytics/nn/tasks.py,sha256=bIvE-BPUUFnQAEQ7SuV9DutUlFXIBGsLG9HxB-ZONl0,52678
182
182
  ultralytics/nn/modules/__init__.py,sha256=R_qrw30VU_cgg1YyowVpzAbqh87WfYXkPZe4Og_bQqk,2951
183
183
  ultralytics/nn/modules/activation.py,sha256=_DL_rQw4QmhNO0CaftNR8HRvqNnTGRbmjyD6HGbPjxw,1392
@@ -213,7 +213,7 @@ ultralytics/trackers/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6D
213
213
  ultralytics/trackers/utils/gmc.py,sha256=0S-RUQQMc91eX0XZJQk1zXz8cAkGXZCnOmccLLyGUp4,14500
214
214
  ultralytics/trackers/utils/kalman_filter.py,sha256=A0CqOnnaKH6kr0XwuHzyHmIU6aJAjJYxF9jVlNBKZHo,21326
215
215
  ultralytics/trackers/utils/matching.py,sha256=7eIufSdeN7cXuFMjvcfvz0Ldq84m4YKZl5IGxBR8IIo,7169
216
- ultralytics/utils/__init__.py,sha256=7C5P540yb12_-cOpZAxk9UIdpglK-eQyQDieKhLiRlU,49498
216
+ ultralytics/utils/__init__.py,sha256=wL52-seT_KeoINI5XWvtcbBi9-6vq5z3fYpP95j5mbA,49499
217
217
  ultralytics/utils/autobatch.py,sha256=KnvmNSAO_6H3ZLJ4fOFMTFbOaMlbp025LiJqrdKIz8c,4998
218
218
  ultralytics/utils/benchmarks.py,sha256=uw9cpyg0pkvb5Ri1ExDwixtqXBosacYGngLLFU1fKYA,30246
219
219
  ultralytics/utils/checks.py,sha256=nY-tBB-z8u3W0r2pJx8CPTaO1lkycTAKpH7g_Yj0cSg,32629
@@ -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.92.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
246
+ ultralytics-8.3.92.dist-info/METADATA,sha256=T3ScR-0RjHbGn8I6_Ni5Kq5rMhZR29sZqv5xqhT1wLg,35169
247
+ ultralytics-8.3.92.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
248
+ ultralytics-8.3.92.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
249
+ ultralytics-8.3.92.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
250
+ ultralytics-8.3.92.dist-info/RECORD,,