ultralytics 8.3.116__py3-none-any.whl → 8.3.118__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.
Files changed (41) hide show
  1. tests/__init__.py +22 -0
  2. tests/conftest.py +83 -0
  3. tests/test_cli.py +128 -0
  4. tests/test_cuda.py +164 -0
  5. tests/test_engine.py +131 -0
  6. tests/test_exports.py +231 -0
  7. tests/test_integrations.py +154 -0
  8. tests/test_python.py +695 -0
  9. tests/test_solutions.py +176 -0
  10. ultralytics/__init__.py +1 -1
  11. ultralytics/cfg/__init__.py +1 -1
  12. ultralytics/data/augment.py +3 -0
  13. ultralytics/data/base.py +11 -3
  14. ultralytics/data/dataset.py +3 -4
  15. ultralytics/data/loaders.py +2 -1
  16. ultralytics/engine/exporter.py +18 -11
  17. ultralytics/engine/trainer.py +2 -2
  18. ultralytics/hub/session.py +3 -2
  19. ultralytics/hub/utils.py +1 -1
  20. ultralytics/models/yolo/detect/predict.py +2 -2
  21. ultralytics/models/yolo/detect/val.py +1 -1
  22. ultralytics/models/yolo/model.py +2 -3
  23. ultralytics/models/yolo/obb/train.py +1 -1
  24. ultralytics/models/yolo/pose/predict.py +1 -1
  25. ultralytics/models/yolo/pose/train.py +1 -1
  26. ultralytics/models/yolo/pose/val.py +1 -1
  27. ultralytics/models/yolo/segment/train.py +3 -3
  28. ultralytics/models/yolo/yoloe/val.py +1 -1
  29. ultralytics/nn/autobackend.py +10 -9
  30. ultralytics/nn/text_model.py +97 -15
  31. ultralytics/utils/__init__.py +1 -1
  32. ultralytics/utils/benchmarks.py +4 -5
  33. ultralytics/utils/checks.py +4 -2
  34. ultralytics/utils/downloads.py +1 -0
  35. ultralytics/utils/torch_utils.py +4 -3
  36. {ultralytics-8.3.116.dist-info → ultralytics-8.3.118.dist-info}/METADATA +3 -4
  37. {ultralytics-8.3.116.dist-info → ultralytics-8.3.118.dist-info}/RECORD +41 -32
  38. {ultralytics-8.3.116.dist-info → ultralytics-8.3.118.dist-info}/WHEEL +0 -0
  39. {ultralytics-8.3.116.dist-info → ultralytics-8.3.118.dist-info}/entry_points.txt +0 -0
  40. {ultralytics-8.3.116.dist-info → ultralytics-8.3.118.dist-info}/licenses/LICENSE +0 -0
  41. {ultralytics-8.3.116.dist-info → ultralytics-8.3.118.dist-info}/top_level.txt +0 -0
@@ -15,20 +15,6 @@ except ImportError:
15
15
  checks.check_requirements("git+https://github.com/ultralytics/CLIP.git")
16
16
  import clip
17
17
 
18
- try:
19
- import warnings
20
-
21
- # Suppress 'timm.models.layers is deprecated, please import via timm.layers' warning from mobileclip usage
22
- with warnings.catch_warnings():
23
- warnings.filterwarnings("ignore", category=FutureWarning)
24
- import mobileclip
25
- except ImportError:
26
- # MobileCLIP repo has an incorrect version of torchvision as dependency
27
- # Manually install other dependencies first and install mobileclip with "--no-deps" flag
28
- checks.check_requirements(["open-clip-torch>=2.20.0", "timm>=0.9.5"])
29
- checks.check_requirements("git+https://github.com/apple/ml-mobileclip.git", cmds="--no-deps")
30
- import mobileclip
31
-
32
18
 
33
19
  class TextModel(nn.Module):
34
20
  """
@@ -192,6 +178,18 @@ class MobileCLIP(TextModel):
192
178
  >>> tokens = model.tokenize(["a photo of a cat", "a photo of a dog"])
193
179
  >>> features = model.encode_text(tokens)
194
180
  """
181
+ try:
182
+ import warnings
183
+
184
+ # Suppress 'timm.models.layers is deprecated, please import via timm.layers' warning from mobileclip usage
185
+ with warnings.catch_warnings():
186
+ warnings.filterwarnings("ignore", category=FutureWarning)
187
+ import mobileclip
188
+ except ImportError:
189
+ # Ultralytics fork preferred since Apple MobileCLIP repo has incorrect version of torchvision
190
+ checks.check_requirements("git+https://github.com/ultralytics/mobileclip.git")
191
+ import mobileclip
192
+
195
193
  super().__init__()
196
194
  config = self.config_size_map[size]
197
195
  file = f"mobileclip_{size}.pt"
@@ -245,6 +243,90 @@ class MobileCLIP(TextModel):
245
243
  return text_features
246
244
 
247
245
 
246
+ class MobileCLIPTS(TextModel):
247
+ """
248
+ Load a TorchScript traced version of MobileCLIP.
249
+
250
+ This class implements the TextModel interface using Apple's MobileCLIP model, providing efficient text encoding
251
+ capabilities for vision-language tasks.
252
+
253
+ Attributes:
254
+ encoder (mobileclip.model.MobileCLIP): The loaded MobileCLIP text encoder.
255
+ tokenizer (callable): Tokenizer function for processing text inputs.
256
+ device (torch.device): Device where the model is loaded.
257
+
258
+ Methods:
259
+ tokenize: Convert input texts to MobileCLIP tokens.
260
+ encode_text: Encode tokenized texts into normalized feature vectors.
261
+
262
+ Examples:
263
+ >>> device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
264
+ >>> text_encoder = MobileCLIP(device=device)
265
+ >>> tokens = text_encoder.tokenize(["a photo of a cat", "a photo of a dog"])
266
+ >>> features = text_encoder.encode_text(tokens)
267
+ """
268
+
269
+ def __init__(self, device):
270
+ """
271
+ Initialize the MobileCLIP text encoder.
272
+
273
+ This class implements the TextModel interface using Apple's MobileCLIP model for efficient text encoding.
274
+
275
+ Args:
276
+ device (torch.device): Device to load the model on.
277
+
278
+ Examples:
279
+ >>> from ultralytics.nn.modules import MobileCLIP
280
+ >>> import torch
281
+ >>> model = MobileCLIP(device=torch.device("cpu"))
282
+ >>> tokens = model.tokenize(["a photo of a cat", "a photo of a dog"])
283
+ >>> features = model.encode_text(tokens)
284
+ """
285
+ super().__init__()
286
+ from ultralytics.utils.downloads import attempt_download_asset
287
+
288
+ self.encoder = torch.jit.load(attempt_download_asset("mobileclip_blt.ts"), map_location=device)
289
+ self.tokenizer = clip.clip.tokenize
290
+ self.device = device
291
+
292
+ def tokenize(self, texts):
293
+ """
294
+ Convert input texts to MobileCLIP tokens.
295
+
296
+ Args:
297
+ texts (list[str]): List of text strings to tokenize.
298
+
299
+ Returns:
300
+ (torch.Tensor): Tokenized text inputs with shape (batch_size, sequence_length).
301
+
302
+ Examples:
303
+ >>> model = MobileCLIP("cpu")
304
+ >>> tokens = model.tokenize(["a photo of a cat", "a photo of a dog"])
305
+ """
306
+ return self.tokenizer(texts).to(self.device)
307
+
308
+ @smart_inference_mode()
309
+ def encode_text(self, texts, dtype=torch.float32):
310
+ """
311
+ Encode tokenized texts into normalized feature vectors.
312
+
313
+ Args:
314
+ texts (torch.Tensor): Tokenized text inputs.
315
+ dtype (torch.dtype, optional): Data type for output features.
316
+
317
+ Returns:
318
+ (torch.Tensor): Normalized text feature vectors with L2 normalization applied.
319
+
320
+ Examples:
321
+ >>> model = MobileCLIP(device="cpu")
322
+ >>> tokens = model.tokenize(["a photo of a cat", "a photo of a dog"])
323
+ >>> features = model.encode_text(tokens)
324
+ >>> features.shape
325
+ torch.Size([2, 512]) # Actual dimension depends on model size
326
+ """
327
+ return self.encoder(texts)
328
+
329
+
248
330
  def build_text_model(variant, device=None):
249
331
  """
250
332
  Build a text encoding model based on the specified variant.
@@ -264,6 +346,6 @@ def build_text_model(variant, device=None):
264
346
  if base == "clip":
265
347
  return CLIP(size, device)
266
348
  elif base == "mobileclip":
267
- return MobileCLIP(size, device)
349
+ return MobileCLIPTS(device)
268
350
  else:
269
351
  raise ValueError(f"Unrecognized base model: '{base}'. Supported base models: 'clip', 'mobileclip'.")
@@ -4,7 +4,7 @@ import contextlib
4
4
  import importlib.metadata
5
5
  import inspect
6
6
  import json
7
- import logging.config
7
+ import logging
8
8
  import os
9
9
  import platform
10
10
  import re
@@ -120,10 +120,9 @@ def benchmark(
120
120
  )
121
121
  if i in {5}: # CoreML
122
122
  assert not IS_PYTHON_3_13, "CoreML not supported on Python 3.13"
123
- if i in {6, 7, 8}: # TF SavedModel, TF GraphDef, and TFLite
124
- assert not isinstance(model, YOLOWorld), "YOLOWorldv2 TensorFlow exports not supported by onnx2tf yet"
125
- if i in {9, 10}: # TF EdgeTPU and TF.js
123
+ if i in {6, 7, 8, 9, 10}: # TF SavedModel, TF GraphDef, and TFLite, TF EdgeTPU and TF.js
126
124
  assert not isinstance(model, YOLOWorld), "YOLOWorldv2 TensorFlow exports not supported by onnx2tf yet"
125
+ # assert not IS_PYTHON_MINIMUM_3_12, "TFLite exports not supported on Python>=3.12 yet"
127
126
  if i == 11: # Paddle
128
127
  assert not isinstance(model, YOLOWorld), "YOLOWorldv2 Paddle exports not supported yet"
129
128
  assert model.task != "obb", "Paddle OBB bug https://github.com/PaddlePaddle/Paddle/issues/72024"
@@ -137,7 +136,7 @@ def benchmark(
137
136
  assert not is_end2end
138
137
  assert not isinstance(model, YOLOWorld), "YOLOWorldv2 IMX exports not supported"
139
138
  assert model.task == "detect", "IMX only supported for detection task"
140
- assert "C2f" in model.__str__(), "IMX only supported for YOLOv8"
139
+ assert "C2f" in model.__str__(), "IMX only supported for YOLOv8" # TODO: enable for YOLO11
141
140
  if i == 15: # RKNN
142
141
  assert not isinstance(model, YOLOWorld), "YOLOWorldv2 RKNN exports not supported yet"
143
142
  assert not is_end2end, "End-to-end models not supported by RKNN yet"
@@ -178,7 +177,7 @@ def benchmark(
178
177
  except Exception as e:
179
178
  if verbose:
180
179
  assert type(e) is AssertionError, f"Benchmark failure for {name}: {e}"
181
- LOGGER.warning(f"ERROR ❌️ Benchmark failure for {name}: {e}")
180
+ LOGGER.error(f"Benchmark failure for {name}: {e}")
182
181
  y.append([name, emoji, round(file_size(filename), 1), None, None, None]) # mAP, t_inference
183
182
 
184
183
  # Print results
@@ -11,6 +11,7 @@ import subprocess
11
11
  import time
12
12
  from importlib import metadata
13
13
  from pathlib import Path
14
+ from types import SimpleNamespace
14
15
  from typing import Optional
15
16
 
16
17
  import cv2
@@ -37,7 +38,6 @@ from ultralytics.utils import (
37
38
  USER_CONFIG_DIR,
38
39
  WINDOWS,
39
40
  Retry,
40
- SimpleNamespace,
41
41
  ThreadingLocked,
42
42
  TryExcept,
43
43
  clean_url,
@@ -883,7 +883,9 @@ check_torchvision() # check torch-torchvision compatibility
883
883
 
884
884
  # Define constants
885
885
  IS_PYTHON_3_8 = PYTHON_VERSION.startswith("3.8")
886
- IS_PYTHON_MINIMUM_3_10 = check_python("3.10", hard=False)
887
886
  IS_PYTHON_3_11 = PYTHON_VERSION.startswith("3.11")
888
887
  IS_PYTHON_3_12 = PYTHON_VERSION.startswith("3.12")
889
888
  IS_PYTHON_3_13 = PYTHON_VERSION.startswith("3.13")
889
+
890
+ IS_PYTHON_MINIMUM_3_10 = check_python("3.10", hard=False)
891
+ IS_PYTHON_MINIMUM_3_12 = check_python("3.12", hard=False)
@@ -34,6 +34,7 @@ GITHUB_ASSETS_NAMES = frozenset(
34
34
  + [f"FastSAM-{k}.pt" for k in "sx"]
35
35
  + [f"rtdetr-{k}.pt" for k in "lx"]
36
36
  + ["mobile_sam.pt"]
37
+ + ["mobileclip_blt.ts"]
37
38
  + ["calibration_image_sample_data_20x128x128x3_float32.npy.zip"]
38
39
  )
39
40
  GITHUB_ASSETS_STEMS = frozenset(k.rsplit(".", 1)[0] for k in GITHUB_ASSETS_NAMES)
@@ -17,6 +17,7 @@ import torch.distributed as dist
17
17
  import torch.nn as nn
18
18
  import torch.nn.functional as F
19
19
 
20
+ from ultralytics import __version__
20
21
  from ultralytics.utils import (
21
22
  DEFAULT_CFG_DICT,
22
23
  DEFAULT_CFG_KEYS,
@@ -25,7 +26,6 @@ from ultralytics.utils import (
25
26
  PYTHON_VERSION,
26
27
  TORCHVISION_VERSION,
27
28
  WINDOWS,
28
- __version__,
29
29
  colorstr,
30
30
  )
31
31
  from ultralytics.utils.checks import check_version
@@ -55,12 +55,13 @@ if WINDOWS and check_version(torch.__version__, "==2.4.0"): # reject version 2.
55
55
  def torch_distributed_zero_first(local_rank: int):
56
56
  """Ensures all processes in distributed training wait for the local master (rank 0) to complete a task first."""
57
57
  initialized = dist.is_available() and dist.is_initialized()
58
+ use_ids = initialized and dist.get_backend() == "nccl"
58
59
 
59
60
  if initialized and local_rank not in {-1, 0}:
60
- dist.barrier(device_ids=[local_rank])
61
+ dist.barrier(device_ids=[local_rank]) if use_ids else dist.barrier()
61
62
  yield
62
63
  if initialized and local_rank == 0:
63
- dist.barrier(device_ids=[local_rank])
64
+ dist.barrier(device_ids=[local_rank]) if use_ids else dist.barrier()
64
65
 
65
66
 
66
67
  def smart_inference_mode():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.116
3
+ Version: 8.3.118
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>
@@ -60,14 +60,13 @@ Requires-Dist: mkdocs-ultralytics-plugin>=0.1.17; extra == "dev"
60
60
  Requires-Dist: mkdocs-macros-plugin>=1.0.5; extra == "dev"
61
61
  Provides-Extra: export
62
62
  Requires-Dist: onnx>=1.12.0; extra == "export"
63
- Requires-Dist: coremltools>=8.0; (platform_system != "Windows" and python_version <= "3.12") and extra == "export"
63
+ Requires-Dist: coremltools>=8.0; (platform_system != "Windows" and python_version <= "3.13") and extra == "export"
64
64
  Requires-Dist: scikit-learn>=1.3.2; (platform_system != "Windows" and python_version <= "3.12") and extra == "export"
65
65
  Requires-Dist: openvino>=2024.0.0; extra == "export"
66
66
  Requires-Dist: tensorflow>=2.0.0; extra == "export"
67
- Requires-Dist: tensorflowjs>=4.0.0; extra == "export"
67
+ Requires-Dist: tensorflowjs>=2.0.0; extra == "export"
68
68
  Requires-Dist: tensorstore>=0.1.63; (platform_machine == "aarch64" and python_version >= "3.9") and extra == "export"
69
69
  Requires-Dist: keras; extra == "export"
70
- Requires-Dist: flatbuffers<100,>=23.5.26; platform_machine == "aarch64" and extra == "export"
71
70
  Requires-Dist: h5py!=3.11.0; platform_machine == "aarch64" and extra == "export"
72
71
  Provides-Extra: solutions
73
72
  Requires-Dist: shapely<2.1.0,>=2.0.0; extra == "solutions"
@@ -1,7 +1,16 @@
1
- ultralytics/__init__.py,sha256=hJZgj-05JvXpxDaasqblynp1_3OTO8h2asjqrJKG8wg,730
1
+ tests/__init__.py,sha256=xnMhv3O_DF1YrW4zk__ZywQzAaoTDjPKPoiI1Ktss1w,670
2
+ tests/conftest.py,sha256=rsIAipRKfrVNoTaJ1LdpYue8AbcJ_fr3d3WIlM_6uXY,2982
3
+ tests/test_cli.py,sha256=PtMFl5Lp_6ygBbYDJ1ndofz2k7ZYupMPEAiZw6aZVm8,5450
4
+ tests/test_cuda.py,sha256=0uvTF4bY_Grsd_Xgtp7TdIEgMpUqKv8_kWA82NYDl_g,6260
5
+ tests/test_engine.py,sha256=aGqZ8P7QO5C_nOa1b4FOyk92Ysdk5WiP-ST310Vyxys,4962
6
+ tests/test_exports.py,sha256=dhZn86LdbapW15RthQF870LGxDjC1MUZhlGdBgPmgIQ,9716
7
+ tests/test_integrations.py,sha256=dQteeRsRVuT_p5-T88-7jqT65Zm9iAXkyKg-KQ1_TQ8,6341
8
+ tests/test_python.py,sha256=ok2xp7zwPOwcyl4yNawlx1uJ5HETn9eU-jyTPYzA0fI,25491
9
+ tests/test_solutions.py,sha256=BIvg9zW0a_ggEmrPKgB_Y0MncveH-eYuN5KlqdJ6nHs,5726
10
+ ultralytics/__init__.py,sha256=XXXjEpVt0joLJxWXDQxT5ayqfhL1PxsXFJDk2EE48wk,730
2
11
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
3
12
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
4
- ultralytics/cfg/__init__.py,sha256=-66Vtli1XqcRUJ9F_gYyEoKTO3gDMmOrDDnUEa5G84s,39646
13
+ ultralytics/cfg/__init__.py,sha256=qtkKD_vj_AVo4lrGJkoVSovO3qY9IgETkzaTHWDJZ-4,39665
5
14
  ultralytics/cfg/default.yaml,sha256=6Z_HIaObLT2i9dhbskEg_PU_IfJS2fcCsffxr_RfFpU,8257
6
15
  ultralytics/cfg/datasets/Argoverse.yaml,sha256=_xlEDIJ9XkUo0v_iNL7FW079BoSeZtKSuLteKTtGbA8,3275
7
16
  ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=SHND_CFkojxw5iQD5Mcgju2kCZIl0gW2ajuzv1cqoL0,1224
@@ -95,12 +104,12 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=8fM3y4TXKKT_5aWsqmQw5JEgwNlBGlRaf8L
95
104
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=6u-tiZlk16EqEwkNXaMrza6PAQmWj_ypgv26LGCtPDg,886
96
105
  ultralytics/data/__init__.py,sha256=nAXaL1puCc7z_NjzQNlJnhbVhT9Fla2u7Dsqo7q1dAc,644
97
106
  ultralytics/data/annotator.py,sha256=VEwb11FsEZm75qlEp8XDHFGKW0_rGsEaFDaBVd771Kw,2902
98
- ultralytics/data/augment.py,sha256=JgUva2YddmLs-p2lFqTHXIl1t_66Oz6wH-X5fYLYouY,125171
99
- ultralytics/data/base.py,sha256=TpOmVPC6O-3JOrYQcWCeVVsnpCvpicatjH70M9VRxgM,18578
107
+ ultralytics/data/augment.py,sha256=Nv0q6_oDHz0fdEPRPOAI29JTLI9KC4IeMv-YW943iLQ,125239
108
+ ultralytics/data/base.py,sha256=uMh_xzs6ci1hciDLpbVW2ZQr7js0o8jctE8KhL2T7Z4,19015
100
109
  ultralytics/data/build.py,sha256=FVIkgLGv5n1C7SRDrQiKOMDcI7V59WmEihKslzvEISg,9651
101
110
  ultralytics/data/converter.py,sha256=znXH2XTdo0Q4NDHMny1ydVBvrxKn2kbbwI-X5bn1MlQ,26890
102
- ultralytics/data/dataset.py,sha256=y7A786pqR_fDU9lSeMFkXHK6biXzDyIjR2Hvu1xZk14,34758
103
- ultralytics/data/loaders.py,sha256=kl3gHkcIcNHqLKuQ5fyAlDo9WYBsCPjLcnFbRpk6KVw,28494
111
+ ultralytics/data/dataset.py,sha256=oVtLS1VQzgI0r9thu0W3Yqr1oHPTs8rLS2SlBIIWFxE,34820
112
+ ultralytics/data/loaders.py,sha256=o844tZlfZEhXop16t-hwaEQHhbfP3_bQMS0whF_NSos,28531
104
113
  ultralytics/data/split.py,sha256=6LHB1z8woXurWjXfM-Zm2thRr1KXvzR18CFJA-SDUvE,4677
105
114
  ultralytics/data/split_dota.py,sha256=p8eVGht9tABSVbf9vwvxA_AQYEva3IGHePKlMeNrn64,11872
106
115
  ultralytics/data/utils.py,sha256=HET4rbj4iUcjen0t8E_Qo_9S9RGPVQRYL-j0KI0qflI,35269
@@ -109,17 +118,17 @@ ultralytics/data/scripts/get_coco.sh,sha256=UuJpJeo3qQpTHVINeOpmP0NYmg8PhEFE3A8J
109
118
  ultralytics/data/scripts/get_coco128.sh,sha256=qmRQl_hOKrsdHrTrnyQuFIH01oDz3lfaz138OgGfLt8,650
110
119
  ultralytics/data/scripts/get_imagenet.sh,sha256=hr42H16bM47iT27rgS7MpEo-GeOZAYUQXgr0B2cwn48,1705
111
120
  ultralytics/engine/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
112
- ultralytics/engine/exporter.py,sha256=DloC0wjWHzxbF5v2ue0_R9gNXwkUo6gRR2zc73ILbEc,73454
121
+ ultralytics/engine/exporter.py,sha256=edGxFbYCTkxuw5tbpZLmuRwn2VXEuHkOy0jq_KELJ8I,73606
113
122
  ultralytics/engine/model.py,sha256=wS1cwgv0iyhsslMAZYMGlYDWitDIRW96d7MxwW-Sw5o,52817
114
123
  ultralytics/engine/predictor.py,sha256=YJ5l-0qIpr6JAJxowswtZ0IqmXBqVTvAA9vR40v0sCM,21752
115
124
  ultralytics/engine/results.py,sha256=MZkhI0CCOkBQPR-EzswymVqvqeyk35EkESGUQ_08r8k,79738
116
- ultralytics/engine/trainer.py,sha256=O6Cl-27Wd8w7WJGfG3rIx7LDgF-_qb9gF_j8oBeUV24,38839
125
+ ultralytics/engine/trainer.py,sha256=fdB8H6brnnQAL-ZFP6nmNmKMze0_qy0OT3jJg1B5uhQ,38864
117
126
  ultralytics/engine/tuner.py,sha256=oyjnbAExddGTBN-sm7tXFtxSgjZOZ5M81EIJSzpmqno,12581
118
127
  ultralytics/engine/validator.py,sha256=jfV81wuFDgrVVXEcPzgOpxAPrAZn-1LgpKwu9l_1-ts,17050
119
128
  ultralytics/hub/__init__.py,sha256=wDtAUKdfqob95tfFHgDJFXcsNSDSdoIQkJTm-CfIUTI,6616
120
129
  ultralytics/hub/auth.py,sha256=_bGQVLTgP-ina4fQxq2M7qkj9zKKfxb99_VWgN3S_4k,5549
121
- ultralytics/hub/session.py,sha256=3psanIW9-l9tguGwqWorgK6ksRlSbBo_ID9q0DD7gNo,18686
122
- ultralytics/hub/utils.py,sha256=S1fBLXh6Tr3TpQkOhgoQZNWVkM46xPRbnLsmloo7seM,9642
130
+ ultralytics/hub/session.py,sha256=OPPIF6kljByP3hzMwUz4ti4NjI4PHSrbXMktJQzRIJc,18709
131
+ ultralytics/hub/utils.py,sha256=luSqI4Ym7A1NRFrDsryPTDrlFL8FJdWQ9Zyrl9d-Abs,9661
123
132
  ultralytics/hub/google/__init__.py,sha256=rV9_KoRBwYlwyx3QLaBp1opw5Sjrbgl0YoDHtXoHIMw,8429
124
133
  ultralytics/models/__init__.py,sha256=DqQFFYJ4IQlqIDb61H1HzcnZU7SuHN-43bw94-l-YAQ,309
125
134
  ultralytics/models/fastsam/__init__.py,sha256=HGJ8EKlBAsdF-e2aIwQLjSDAFI_r0yHR0A1gzrp4vqE,231
@@ -154,26 +163,26 @@ ultralytics/models/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXp
154
163
  ultralytics/models/utils/loss.py,sha256=4IiyDbxBCm7vRvZuIvXbr0_rCvjOratbqLx4KYaGouw,19986
155
164
  ultralytics/models/utils/ops.py,sha256=SuBnwwgUTqByNHpufobGLW72yO2cyfZFi14KAFWSjjw,13613
156
165
  ultralytics/models/yolo/__init__.py,sha256=or0j5xvcM0usMlsFTYhNAOcQUri7reD0cD9JR5b7zDk,307
157
- ultralytics/models/yolo/model.py,sha256=AJ_IXhU58XDRQvtvEW2SqYdlNx6j9GfPVx-wifTp0Fo,14365
166
+ ultralytics/models/yolo/model.py,sha256=8TbfllTKxvNzr4MlMAFfTV8s-144AUSNUyO_7Ps6aKA,14277
158
167
  ultralytics/models/yolo/classify/__init__.py,sha256=9--HVaNOfI1K7rn_rRqclL8FUAnpfeBrRqEQIaQw2xM,383
159
168
  ultralytics/models/yolo/classify/predict.py,sha256=JV9szginTQ9Lpob0FozhKMiEIu1vVaYg4YItuVK2AFM,4081
160
169
  ultralytics/models/yolo/classify/train.py,sha256=rv2CJv9fzvtHf2q4l5g0RsjplWKeLpz637kKqjtrLNY,9737
161
170
  ultralytics/models/yolo/classify/val.py,sha256=xk-YwSQdl_oqyCBV0OOAOcXFL6CchebFOc36AkRSyjE,9992
162
171
  ultralytics/models/yolo/detect/__init__.py,sha256=GIRsLYR-kT4JJx7lh4ZZAFGBZj0aebokuU0A7JbjDVA,257
163
- ultralytics/models/yolo/detect/predict.py,sha256=7s9j-JaFNO0ATxlQZCav3PjAGe9qx5jrs2CGJ5_h7aM,5306
172
+ ultralytics/models/yolo/detect/predict.py,sha256=oAftDYhksUDjVfgKIsmmair1_ujwVY-yc-MHrl7r9Hw,5343
164
173
  ultralytics/models/yolo/detect/train.py,sha256=YOEmUZkfJBq6hNbB_P10k-uy4_2fUgdPfVWzO4y8Egs,9538
165
- ultralytics/models/yolo/detect/val.py,sha256=_gpsMoMzo_7Rv_vQDyvCeztp6NbuoPNQBNvDWH_R-L4,18434
174
+ ultralytics/models/yolo/detect/val.py,sha256=7AB_wZi7aQ9_V1pZQSWk5qiJYS34fuO3P5aX7_3eeFE,18471
166
175
  ultralytics/models/yolo/obb/__init__.py,sha256=tQmpG8wVHsajWkZdmD6cjGohJ4ki64iSXQT8JY_dydo,221
167
176
  ultralytics/models/yolo/obb/predict.py,sha256=L40iamQgTY7VDn0WggG2jeJK8cVUo1qsNuFSbK67ry0,2974
168
- ultralytics/models/yolo/obb/train.py,sha256=MQgLZ65pcdf8QIzqGxIt77GcuVUeXvdbP8dFjz8Xh34,3458
177
+ ultralytics/models/yolo/obb/train.py,sha256=NBSpXCyIn2qxtaG7gvolUzXOB0mf3oEFIpQZHTES1_s,3458
169
178
  ultralytics/models/yolo/obb/val.py,sha256=dkXUh2JfffILVRkfXycQGImQQssUDgKMtfDRP7jUpV0,13981
170
179
  ultralytics/models/yolo/pose/__init__.py,sha256=63xmuHZLNzV8I76HhVXAq4f2W0KTk8Oi9eL-Y204LyQ,227
171
- ultralytics/models/yolo/pose/predict.py,sha256=Q3eOti-wjEeiTpChTdb_kY_CgkwEYMGbBztsb2JAVbo,3836
172
- ultralytics/models/yolo/pose/train.py,sha256=W9ThNoqawpZOTgX8TZfcdPY1_zxFjB-GryToUUTGf-k,5942
173
- ultralytics/models/yolo/pose/val.py,sha256=PO2Tdlntbx41q_7U4vZ0L_J9-tiqNq5cHCzBJ7HmOUo,18303
180
+ ultralytics/models/yolo/pose/predict.py,sha256=sY-yMVl-hW8tGVSKt-5Pl1Bhdhj9exnmGIeb4n9wUDc,3836
181
+ ultralytics/models/yolo/pose/train.py,sha256=QQo4Q5kpvPv7kfa4uWmg3mFFa__fvIQ0yklGpa6XL58,5942
182
+ ultralytics/models/yolo/pose/val.py,sha256=FWDOPjf1Ajumh8DU5VRqUKYEDB8PeAzWtdZvhaIYTRc,18303
174
183
  ultralytics/models/yolo/segment/__init__.py,sha256=3IThhZ1wlkY9FvmWm9cE-5-ZyE6F1FgzAtQ6jOOFzzw,275
175
184
  ultralytics/models/yolo/segment/predict.py,sha256=mIC3aHI7Jg4dU1k2UZnjVj4unE-5TWi_rh7P0AEyJmA,5410
176
- ultralytics/models/yolo/segment/train.py,sha256=7DN9UpvNeEPHUNlDOZSnxem4bPfo_e5UgMLyyKT6FWo,5359
185
+ ultralytics/models/yolo/segment/train.py,sha256=EIyIAjYp127Mb-DomyjPORaONu57OY_gOTK9p2MwW6E,5359
177
186
  ultralytics/models/yolo/segment/val.py,sha256=cXJM1JNuzDraU0SJQRIdzNxabd0bfcxiRE8wozHZChY,18415
178
187
  ultralytics/models/yolo/world/__init__.py,sha256=nlh8I6t8hMGz_vZg8QSlsUW1R-2eKvn9CGUoPPQEGhA,131
179
188
  ultralytics/models/yolo/world/train.py,sha256=HUJ0XiJIGx_FA9kqNYnSFsaKWMiZUDxgkpfGoBH6UNc,4896
@@ -182,11 +191,11 @@ ultralytics/models/yolo/yoloe/__init__.py,sha256=Z9QEmbDYABkx15zFILDsFNNz1IyZ5hl
182
191
  ultralytics/models/yolo/yoloe/predict.py,sha256=pjvQ8TKlAe_KIFo70qiNdOrSTITU3pcJ4VE_k7uJjDk,6994
183
192
  ultralytics/models/yolo/yoloe/train.py,sha256=JF_QxJUU3_w8yhmTfKFTpI7rVRJL1g7z7wnDikCxnn8,17691
184
193
  ultralytics/models/yolo/yoloe/train_seg.py,sha256=6nN9DbP-AJKlJ3nIlvNn8VXFwFLQEVjSOgdN5aA817M,5309
185
- ultralytics/models/yolo/yoloe/val.py,sha256=utdt8wZvvW9OPxO5rx8KsFlkLG0FXj0YMD7Jhyk54D8,8440
194
+ ultralytics/models/yolo/yoloe/val.py,sha256=oA8cVT3pBXF6aPZy7ITq0mDcktRuIgks8tTtqMRISyY,8431
186
195
  ultralytics/nn/__init__.py,sha256=rjociYD9lo_K-d-1s6TbdWklPLjTcEHk7OIlRDJstIE,615
187
- ultralytics/nn/autobackend.py,sha256=5FAYp7VktiOKxY0ta1BSewaXf_eH-EENvjnvazPotwQ,39214
196
+ ultralytics/nn/autobackend.py,sha256=tnYxzboWGBgNvUYrz2zokPH1Bw__GD2ZQro1gO-ZIF8,39298
188
197
  ultralytics/nn/tasks.py,sha256=EwRC70qA3eP8Xp-gGP8OuN-q8LCGDrq1iRue7ncRSV4,62916
189
- ultralytics/nn/text_model.py,sha256=H6OiLe0FOyZY4pd7-ixRTxaBgx3lOc2GmGTmrFnoJd0,10136
198
+ ultralytics/nn/text_model.py,sha256=8_7SRejKZA4Pi-ha0gjcWrQDDCDMBhtwlg8pPMWgjDE,13145
190
199
  ultralytics/nn/modules/__init__.py,sha256=dXLtIk9rt944WfsTdpgEdWOg3HQEHdwQztuZ6WNJygs,3144
191
200
  ultralytics/nn/modules/activation.py,sha256=PvXZkA9AzEntR575JkFORdmtcRwATyy0lje-uHA5_8w,2210
192
201
  ultralytics/nn/modules/block.py,sha256=jGPMLa-FWYall7FmWvSLIduc2qu-A-lOcBjCaHqe4nk,66667
@@ -221,12 +230,12 @@ ultralytics/trackers/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6D
221
230
  ultralytics/trackers/utils/gmc.py,sha256=dz3I5LbIv7h1__Xg7rGHecQFE32VFTe54tUnxb8F0Z8,14466
222
231
  ultralytics/trackers/utils/kalman_filter.py,sha256=A0CqOnnaKH6kr0XwuHzyHmIU6aJAjJYxF9jVlNBKZHo,21326
223
232
  ultralytics/trackers/utils/matching.py,sha256=7eIufSdeN7cXuFMjvcfvz0Ldq84m4YKZl5IGxBR8IIo,7169
224
- ultralytics/utils/__init__.py,sha256=ZtidK2cfc4G3z9EfG2oDuJRjWaf9rIl2CnWyz5vP2q8,50429
233
+ ultralytics/utils/__init__.py,sha256=qV5nw3ED1NuSCoYwW3WpT6BTLeCnoH7KJgbPZU_3Sbo,50422
225
234
  ultralytics/utils/autobatch.py,sha256=VZTIKLWeFZFwBHJmbiCn3MaxoFp89hLR0DSCR_iLXJg,4913
226
- ultralytics/utils/benchmarks.py,sha256=L7rpcnVAnk2doGNJMhXcDqypPLiz0taZ3bDv850IZkU,30404
227
- ultralytics/utils/checks.py,sha256=5J5az856JIBdWkVjnwd6mCPWKhvwUTrWJPd1ZI27puw,32556
235
+ ultralytics/utils/benchmarks.py,sha256=aZse9tetEwjMy2GkdNWZ0WfCgjLfCM3_BkI1qNNQb_w,30377
236
+ ultralytics/utils/checks.py,sha256=5bkna--ZH4FJDZtgef_K4xgjiKOZqCarTqIE4Z0vwJU,32628
228
237
  ultralytics/utils/dist.py,sha256=e-DK_YowV7D9rDGQyWR9Kaosxp2eWe2EogSWnnUMthc,4098
229
- ultralytics/utils/downloads.py,sha256=Bxg9i0coiQTaYztYtc1tXKH3qpg8lV-ywXPSbT121hU,22125
238
+ ultralytics/utils/downloads.py,sha256=d9m7VJKl_grFf0R-oYDrOa-vkSyaP9ucjfMILMB5Ly4,22153
230
239
  ultralytics/utils/errors.py,sha256=vY9h2evFSrHnZdHJVVrmm8Zzw4qVDLyo9DeYW5g0dFk,1573
231
240
  ultralytics/utils/export.py,sha256=mTkebwilsT1jwIfTLgAQdkbrnZr9Sm96W-Vi7B1j5wQ,8817
232
241
  ultralytics/utils/files.py,sha256=0K4O1cgqRiXaDw7EQK13TqA5SME_RrvfDVQSPetNr5w,8042
@@ -237,7 +246,7 @@ ultralytics/utils/ops.py,sha256=8VoH9Gw20DmJsK5IFRLxpq9At61ESuzD99gwu4XcJLg,3478
237
246
  ultralytics/utils/patches.py,sha256=6rVT-l8WDp_Py3O-gZdv9t3PnrYRRkrX_lF3mZ1XS8c,4928
238
247
  ultralytics/utils/plotting.py,sha256=5QPK1y-gm4T1mK3sjfRZhIUJAyP05D1cJ7h9wHPTifU,46616
239
248
  ultralytics/utils/tal.py,sha256=P5nPoR9qNnFuDIda0fsn8WP6m1V8r7EbvXUuhNRFFTA,20805
240
- ultralytics/utils/torch_utils.py,sha256=OqH2yNSghs0JSq16Br_PDBnVed5ZRs0C58zDZDk_bqA,38888
249
+ ultralytics/utils/torch_utils.py,sha256=KUt2qoud3O2bb_cWv1TDjZloNKuLbWk0XJU97wlEdU4,39028
241
250
  ultralytics/utils/triton.py,sha256=xK9Db_ZUVDnIK1u76S2G-6ulIBsLfj9HN_YOaSrnMuU,5304
242
251
  ultralytics/utils/tuner.py,sha256=R_TVIfsTA8qxEPiqHBCZgh1rzqAAOwQ1gImw-0IR13g,6682
243
252
  ultralytics/utils/callbacks/__init__.py,sha256=hzL63Rce6VkZhP4Lcim9LKjadixaQG86nKqPhk7IkS0,242
@@ -251,9 +260,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=JaI95Cj2kIjUhlEEOiDN0-Drc-fDelLhNI
251
260
  ultralytics/utils/callbacks/raytune.py,sha256=A8amUGpux7dYES-L1iSeMoMXBySGWCD1aUqT7vcG-pU,1284
252
261
  ultralytics/utils/callbacks/tensorboard.py,sha256=jgYnym3cUQFAgN1GzTyO7l3jINtfAh8zhrllDvnLuVQ,5339
253
262
  ultralytics/utils/callbacks/wb.py,sha256=iDRFXI4IIDm8R5OI89DMTmjs8aHLo1HRCLkOFKdaMG4,7507
254
- ultralytics-8.3.116.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
255
- ultralytics-8.3.116.dist-info/METADATA,sha256=G56kvxZhZ2tX9R0P3vpTXGSRtQG0fa_JgobxETJLc5k,37354
256
- ultralytics-8.3.116.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
257
- ultralytics-8.3.116.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
258
- ultralytics-8.3.116.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
259
- ultralytics-8.3.116.dist-info/RECORD,,
263
+ ultralytics-8.3.118.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
264
+ ultralytics-8.3.118.dist-info/METADATA,sha256=3m7C_SI_4IqhMrmf4Awpl5J-T_xCNrCMHu9R409YZlw,37260
265
+ ultralytics-8.3.118.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
266
+ ultralytics-8.3.118.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
267
+ ultralytics-8.3.118.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
268
+ ultralytics-8.3.118.dist-info/RECORD,,