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.
- tests/__init__.py +22 -0
- tests/conftest.py +83 -0
- tests/test_cli.py +128 -0
- tests/test_cuda.py +164 -0
- tests/test_engine.py +131 -0
- tests/test_exports.py +231 -0
- tests/test_integrations.py +154 -0
- tests/test_python.py +695 -0
- tests/test_solutions.py +176 -0
- ultralytics/__init__.py +1 -1
- ultralytics/cfg/__init__.py +1 -1
- ultralytics/data/augment.py +3 -0
- ultralytics/data/base.py +11 -3
- ultralytics/data/dataset.py +3 -4
- ultralytics/data/loaders.py +2 -1
- ultralytics/engine/exporter.py +18 -11
- ultralytics/engine/trainer.py +2 -2
- ultralytics/hub/session.py +3 -2
- ultralytics/hub/utils.py +1 -1
- ultralytics/models/yolo/detect/predict.py +2 -2
- ultralytics/models/yolo/detect/val.py +1 -1
- ultralytics/models/yolo/model.py +2 -3
- ultralytics/models/yolo/obb/train.py +1 -1
- ultralytics/models/yolo/pose/predict.py +1 -1
- ultralytics/models/yolo/pose/train.py +1 -1
- ultralytics/models/yolo/pose/val.py +1 -1
- ultralytics/models/yolo/segment/train.py +3 -3
- ultralytics/models/yolo/yoloe/val.py +1 -1
- ultralytics/nn/autobackend.py +10 -9
- ultralytics/nn/text_model.py +97 -15
- ultralytics/utils/__init__.py +1 -1
- ultralytics/utils/benchmarks.py +4 -5
- ultralytics/utils/checks.py +4 -2
- ultralytics/utils/downloads.py +1 -0
- ultralytics/utils/torch_utils.py +4 -3
- {ultralytics-8.3.116.dist-info → ultralytics-8.3.118.dist-info}/METADATA +3 -4
- {ultralytics-8.3.116.dist-info → ultralytics-8.3.118.dist-info}/RECORD +41 -32
- {ultralytics-8.3.116.dist-info → ultralytics-8.3.118.dist-info}/WHEEL +0 -0
- {ultralytics-8.3.116.dist-info → ultralytics-8.3.118.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.3.116.dist-info → ultralytics-8.3.118.dist-info}/licenses/LICENSE +0 -0
- {ultralytics-8.3.116.dist-info → ultralytics-8.3.118.dist-info}/top_level.txt +0 -0
ultralytics/nn/text_model.py
CHANGED
@@ -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
|
349
|
+
return MobileCLIPTS(device)
|
268
350
|
else:
|
269
351
|
raise ValueError(f"Unrecognized base model: '{base}'. Supported base models: 'clip', 'mobileclip'.")
|
ultralytics/utils/__init__.py
CHANGED
ultralytics/utils/benchmarks.py
CHANGED
@@ -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.
|
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
|
ultralytics/utils/checks.py
CHANGED
@@ -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)
|
ultralytics/utils/downloads.py
CHANGED
@@ -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)
|
ultralytics/utils/torch_utils.py
CHANGED
@@ -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.
|
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.
|
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>=
|
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
|
-
|
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
|
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=
|
99
|
-
ultralytics/data/base.py,sha256=
|
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=
|
103
|
-
ultralytics/data/loaders.py,sha256=
|
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=
|
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=
|
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=
|
122
|
-
ultralytics/hub/utils.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
172
|
-
ultralytics/models/yolo/pose/train.py,sha256=
|
173
|
-
ultralytics/models/yolo/pose/val.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
227
|
-
ultralytics/utils/checks.py,sha256=
|
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=
|
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=
|
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.
|
255
|
-
ultralytics-8.3.
|
256
|
-
ultralytics-8.3.
|
257
|
-
ultralytics-8.3.
|
258
|
-
ultralytics-8.3.
|
259
|
-
ultralytics-8.3.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|