ultralytics 8.2.40__py3-none-any.whl → 8.2.41__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.
Potentially problematic release.
This version of ultralytics might be problematic. Click here for more details.
- ultralytics/__init__.py +1 -1
- ultralytics/engine/model.py +1 -1
- ultralytics/engine/trainer.py +6 -1
- ultralytics/hub/__init__.py +1 -1
- ultralytics/hub/session.py +6 -2
- ultralytics/utils/callbacks/hub.py +1 -1
- ultralytics/utils/dist.py +1 -0
- ultralytics/utils/downloads.py +7 -5
- ultralytics/utils/torch_utils.py +2 -2
- {ultralytics-8.2.40.dist-info → ultralytics-8.2.41.dist-info}/METADATA +3 -5
- {ultralytics-8.2.40.dist-info → ultralytics-8.2.41.dist-info}/RECORD +15 -15
- {ultralytics-8.2.40.dist-info → ultralytics-8.2.41.dist-info}/LICENSE +0 -0
- {ultralytics-8.2.40.dist-info → ultralytics-8.2.41.dist-info}/WHEEL +0 -0
- {ultralytics-8.2.40.dist-info → ultralytics-8.2.41.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.2.40.dist-info → ultralytics-8.2.41.dist-info}/top_level.txt +0 -0
ultralytics/__init__.py
CHANGED
ultralytics/engine/model.py
CHANGED
|
@@ -133,7 +133,7 @@ class Model(nn.Module):
|
|
|
133
133
|
# Check if Ultralytics HUB model from https://hub.ultralytics.com
|
|
134
134
|
if self.is_hub_model(model):
|
|
135
135
|
# Fetch model from HUB
|
|
136
|
-
checks.check_requirements("hub-sdk>=0.0.
|
|
136
|
+
checks.check_requirements("hub-sdk>=0.0.8")
|
|
137
137
|
self.session = HUBTrainingSession.create_session(model)
|
|
138
138
|
model = self.session.model_file
|
|
139
139
|
|
ultralytics/engine/trainer.py
CHANGED
|
@@ -48,6 +48,7 @@ from ultralytics.utils.torch_utils import (
|
|
|
48
48
|
one_cycle,
|
|
49
49
|
select_device,
|
|
50
50
|
strip_optimizer,
|
|
51
|
+
torch_distributed_zero_first,
|
|
51
52
|
)
|
|
52
53
|
|
|
53
54
|
|
|
@@ -127,7 +128,8 @@ class BaseTrainer:
|
|
|
127
128
|
|
|
128
129
|
# Model and Dataset
|
|
129
130
|
self.model = check_model_file_from_stem(self.args.model) # add suffix, i.e. yolov8n -> yolov8n.pt
|
|
130
|
-
|
|
131
|
+
with torch_distributed_zero_first(RANK): # avoid auto-downloading dataset multiple times
|
|
132
|
+
self.trainset, self.testset = self.get_dataset()
|
|
131
133
|
self.ema = None
|
|
132
134
|
|
|
133
135
|
# Optimization utils init
|
|
@@ -143,6 +145,9 @@ class BaseTrainer:
|
|
|
143
145
|
self.csv = self.save_dir / "results.csv"
|
|
144
146
|
self.plot_idx = [0, 1, 2]
|
|
145
147
|
|
|
148
|
+
# HUB
|
|
149
|
+
self.hub_session = None
|
|
150
|
+
|
|
146
151
|
# Callbacks
|
|
147
152
|
self.callbacks = _callbacks or callbacks.get_default_callbacks()
|
|
148
153
|
if RANK in {-1, 0}:
|
ultralytics/hub/__init__.py
CHANGED
|
@@ -38,7 +38,7 @@ def login(api_key: str = None, save=True) -> bool:
|
|
|
38
38
|
Returns:
|
|
39
39
|
(bool): True if authentication is successful, False otherwise.
|
|
40
40
|
"""
|
|
41
|
-
checks.check_requirements("hub-sdk>=0.0.
|
|
41
|
+
checks.check_requirements("hub-sdk>=0.0.8")
|
|
42
42
|
from hub_sdk import HUBClient
|
|
43
43
|
|
|
44
44
|
api_key_url = f"{HUB_WEB_ROOT}/settings?tab=api+keys" # set the redirect URL
|
ultralytics/hub/session.py
CHANGED
|
@@ -71,8 +71,12 @@ class HUBTrainingSession:
|
|
|
71
71
|
"""Class method to create an authenticated HUBTrainingSession or return None."""
|
|
72
72
|
try:
|
|
73
73
|
session = cls(identifier)
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
if not session.client.authenticated:
|
|
75
|
+
if identifier.startswith(f"{HUB_WEB_ROOT}/models/"):
|
|
76
|
+
LOGGER.warning(f"{PREFIX}WARNING ⚠️ Login to Ultralytics HUB with 'yolo hub login API_KEY'.")
|
|
77
|
+
exit()
|
|
78
|
+
return None
|
|
79
|
+
if args and not identifier.startswith(f"{HUB_WEB_ROOT}/models/"): # not a HUB model URL
|
|
76
80
|
session.create_model(args)
|
|
77
81
|
assert session.model.id, "HUB model not loaded correctly"
|
|
78
82
|
return session
|
|
@@ -9,7 +9,7 @@ from ultralytics.utils import LOGGER, RANK, SETTINGS
|
|
|
9
9
|
|
|
10
10
|
def on_pretrain_routine_start(trainer):
|
|
11
11
|
"""Create a remote Ultralytics HUB session to log local model training."""
|
|
12
|
-
if RANK in {-1, 0} and SETTINGS["hub"] is True and
|
|
12
|
+
if RANK in {-1, 0} and SETTINGS["hub"] is True and SETTINGS["api_key"] and trainer.hub_session is None:
|
|
13
13
|
trainer.hub_session = HUBTrainingSession.create_session(trainer.args.model, trainer.args)
|
|
14
14
|
|
|
15
15
|
|
ultralytics/utils/dist.py
CHANGED
|
@@ -37,6 +37,7 @@ if __name__ == "__main__":
|
|
|
37
37
|
cfg = DEFAULT_CFG_DICT.copy()
|
|
38
38
|
cfg.update(save_dir='') # handle the extra key 'save_dir'
|
|
39
39
|
trainer = {name}(cfg=cfg, overrides=overrides)
|
|
40
|
+
trainer.args.model = "{getattr(trainer.hub_session, 'model_url', trainer.args.model)}"
|
|
40
41
|
results = trainer.train()
|
|
41
42
|
"""
|
|
42
43
|
(USER_CONFIG_DIR / "DDP").mkdir(exist_ok=True)
|
ultralytics/utils/downloads.py
CHANGED
|
@@ -168,13 +168,15 @@ def unzip_file(file, path=None, exclude=(".DS_Store", "__MACOSX"), exist_ok=Fals
|
|
|
168
168
|
files = [f for f in zipObj.namelist() if all(x not in f for x in exclude)]
|
|
169
169
|
top_level_dirs = {Path(f).parts[0] for f in files}
|
|
170
170
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
else:
|
|
171
|
+
# Decide to unzip directly or unzip into a directory
|
|
172
|
+
unzip_as_dir = len(top_level_dirs) == 1 # (len(files) > 1 and not files[0].endswith("/"))
|
|
173
|
+
if unzip_as_dir:
|
|
175
174
|
# Zip has 1 top-level directory
|
|
176
175
|
extract_path = path # i.e. ../datasets
|
|
177
|
-
path = Path(path) / list(top_level_dirs)[0] # i.e. ../datasets/
|
|
176
|
+
path = Path(path) / list(top_level_dirs)[0] # i.e. extract coco8/ dir to ../datasets/
|
|
177
|
+
else:
|
|
178
|
+
# Zip has multiple files at top level
|
|
179
|
+
path = extract_path = Path(path) / Path(file).stem # i.e. extract multiple files to ../datasets/coco8/
|
|
178
180
|
|
|
179
181
|
# Check if destination directory already exists and contains files
|
|
180
182
|
if path.exists() and any(path.iterdir()) and not exist_ok:
|
ultralytics/utils/torch_utils.py
CHANGED
|
@@ -43,8 +43,8 @@ TORCHVISION_0_13 = check_version(TORCHVISION_VERSION, "0.13.0")
|
|
|
43
43
|
|
|
44
44
|
@contextmanager
|
|
45
45
|
def torch_distributed_zero_first(local_rank: int):
|
|
46
|
-
"""
|
|
47
|
-
initialized =
|
|
46
|
+
"""Ensures all processes in distributed training wait for the local master (rank 0) to complete a task first."""
|
|
47
|
+
initialized = dist.is_available() and dist.is_initialized()
|
|
48
48
|
if initialized and local_rank not in {-1, 0}:
|
|
49
49
|
dist.barrier(device_ids=[local_rank])
|
|
50
50
|
yield
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.2.
|
|
3
|
+
Version: 8.2.41
|
|
4
4
|
Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
|
5
5
|
Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
6
6
|
Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
@@ -30,7 +30,7 @@ Classifier: Operating System :: Microsoft :: Windows
|
|
|
30
30
|
Requires-Python: >=3.8
|
|
31
31
|
Description-Content-Type: text/markdown
|
|
32
32
|
License-File: LICENSE
|
|
33
|
-
Requires-Dist: numpy <2.0.0
|
|
33
|
+
Requires-Dist: numpy <2.0.0,>=1.23.5
|
|
34
34
|
Requires-Dist: matplotlib >=3.3.0
|
|
35
35
|
Requires-Dist: opencv-python >=4.6.0
|
|
36
36
|
Requires-Dist: pillow >=7.1.2
|
|
@@ -47,8 +47,6 @@ Requires-Dist: seaborn >=0.11.0
|
|
|
47
47
|
Requires-Dist: ultralytics-thop >=2.0.0
|
|
48
48
|
Provides-Extra: dev
|
|
49
49
|
Requires-Dist: ipython ; extra == 'dev'
|
|
50
|
-
Requires-Dist: check-manifest ; extra == 'dev'
|
|
51
|
-
Requires-Dist: pre-commit ; extra == 'dev'
|
|
52
50
|
Requires-Dist: pytest ; extra == 'dev'
|
|
53
51
|
Requires-Dist: pytest-cov ; extra == 'dev'
|
|
54
52
|
Requires-Dist: coverage[toml] ; extra == 'dev'
|
|
@@ -73,7 +71,7 @@ Requires-Dist: numpy ==1.23.5 ; (platform_machine == "aarch64") and extra == 'ex
|
|
|
73
71
|
Requires-Dist: h5py !=3.11.0 ; (platform_machine == "aarch64") and extra == 'export'
|
|
74
72
|
Requires-Dist: coremltools >=7.0 ; (platform_system != "Windows" and python_version <= "3.11") and extra == 'export'
|
|
75
73
|
Provides-Extra: extra
|
|
76
|
-
Requires-Dist: hub-sdk >=0.0.
|
|
74
|
+
Requires-Dist: hub-sdk >=0.0.8 ; extra == 'extra'
|
|
77
75
|
Requires-Dist: ipython ; extra == 'extra'
|
|
78
76
|
Requires-Dist: albumentations >=1.4.6 ; extra == 'extra'
|
|
79
77
|
Requires-Dist: pycocotools >=2.0.7 ; extra == 'extra'
|
|
@@ -7,7 +7,7 @@ tests/test_explorer.py,sha256=r1pWer2y290Y0DqsM-La7egfEY0497YCdC4rwq3URV4,2178
|
|
|
7
7
|
tests/test_exports.py,sha256=qc4YOgsGixqYLO6IRNY16-v6z14R0dp5fdni1v222xw,8034
|
|
8
8
|
tests/test_integrations.py,sha256=8Ru7GyKV8j44EEc8X9_E7q7aR4CTOIMPuSagXjSGUxw,5847
|
|
9
9
|
tests/test_python.py,sha256=9KjBKQXj6T9hRfX-4nnERd7OR3xx2ejV8430BoXjHro,20536
|
|
10
|
-
ultralytics/__init__.py,sha256=
|
|
10
|
+
ultralytics/__init__.py,sha256=GcMVEfwdozZwncuVp8g-Zr28SQqaPQb_NKSxXeuPvok,694
|
|
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=JblkT6Ze9MZ8hSs8gkV8JPcEKNMm-YqRqM4x501Dn9g,21507
|
|
@@ -98,15 +98,15 @@ ultralytics/data/explorer/gui/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2
|
|
|
98
98
|
ultralytics/data/explorer/gui/dash.py,sha256=CPlFIIhf53j_YVAqealsC3AbcztdPqZxfniQcBnlKK4,10042
|
|
99
99
|
ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
|
|
100
100
|
ultralytics/engine/exporter.py,sha256=RVREJjFJ7Y-pnLq_i0yM5x9QRlKoLr0WnQWepkbFD_Y,58534
|
|
101
|
-
ultralytics/engine/model.py,sha256=
|
|
101
|
+
ultralytics/engine/model.py,sha256=XxV97SX-TWLU3FYY_FImupUJo75NQm7mTw7m5FIYDYM,39046
|
|
102
102
|
ultralytics/engine/predictor.py,sha256=W58kDCFH2AfoFzpGbos3k8zUEVsLunBuM8sc2B64rPY,17449
|
|
103
103
|
ultralytics/engine/results.py,sha256=zRuEIrBtpoCQ3M6a_YscnyXrWSP-zpL3ACv0gTdrDaw,30987
|
|
104
|
-
ultralytics/engine/trainer.py,sha256=
|
|
104
|
+
ultralytics/engine/trainer.py,sha256=K3I7HWtgt72FH91Wl8La8Wl9zgg4TN-AiYIGGWjKGKw,35447
|
|
105
105
|
ultralytics/engine/tuner.py,sha256=iZrgMmXSDpfuDu4bdFRflmAsscys2-8W8qAGxSyOVJE,11844
|
|
106
106
|
ultralytics/engine/validator.py,sha256=Y21Uo8_Zto4qjk_YqQk6k7tyfpq_Qk9cfjeXeyDRxs8,14643
|
|
107
|
-
ultralytics/hub/__init__.py,sha256=
|
|
107
|
+
ultralytics/hub/__init__.py,sha256=93bqI8x8-MfDYdKkQVduuocUiQj3WGnk1nIk0li08zA,5663
|
|
108
108
|
ultralytics/hub/auth.py,sha256=FID58NE6fh7Op_B45QOpWBw1qoBN0ponL16uvyb2dZ8,5399
|
|
109
|
-
ultralytics/hub/session.py,sha256=
|
|
109
|
+
ultralytics/hub/session.py,sha256=VaTpoctiX0I8-diPS8ntUPRpFw4rUEV1jwjPRf9yZT8,16031
|
|
110
110
|
ultralytics/hub/utils.py,sha256=RpFDFp9biUK70Mswzz2o3uEu4xwQxRaStPS19U2gu0g,9721
|
|
111
111
|
ultralytics/models/__init__.py,sha256=TT9iLCL_n9Y80dcUq0Fo-p-GRZCSU2vrWXM3CoMwqqE,265
|
|
112
112
|
ultralytics/models/fastsam/__init__.py,sha256=0dt65jZ_5b7Q-mdXN8MSEkgnFRA0FIwlel_LS2RaOlU,254
|
|
@@ -194,8 +194,8 @@ ultralytics/utils/__init__.py,sha256=WdStmMYcXE7q4V3RgTYGmLEicMJR0mTQawGtK5_q9Is
|
|
|
194
194
|
ultralytics/utils/autobatch.py,sha256=gPFcREMsMHRAuTQiBnNZ9Mm1XNqmQW-uMPhveDFEQ_Y,3966
|
|
195
195
|
ultralytics/utils/benchmarks.py,sha256=tDX7wu0TpMMlEQDOFqfkjxl156ssS7Lh_5tFWIXdJfg,23549
|
|
196
196
|
ultralytics/utils/checks.py,sha256=PDY1eHlsyDVEIiKRjvb81uz2jniL1MqgP_TmXH_78KM,28379
|
|
197
|
-
ultralytics/utils/dist.py,sha256=
|
|
198
|
-
ultralytics/utils/downloads.py,sha256=
|
|
197
|
+
ultralytics/utils/dist.py,sha256=NDFga-uKxkBX2zLxFHSene_cCiGQJoyOeCXcN9JIOIk,2358
|
|
198
|
+
ultralytics/utils/downloads.py,sha256=LQ_mqMwHocOyyHvooEZHJKNVS11bFrwXAeefp21LX7M,21681
|
|
199
199
|
ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,816
|
|
200
200
|
ultralytics/utils/files.py,sha256=TVfY0Wi5IsUc4YdsDzC0dAg-jAP5exYvwqB3VmXhDLY,6761
|
|
201
201
|
ultralytics/utils/instance.py,sha256=5daM5nkxBv9hr5QzyII8zmuFj24hHuNtcr4EMCHAtpY,15654
|
|
@@ -205,7 +205,7 @@ ultralytics/utils/ops.py,sha256=A6MnypWNEpgOQRJpPwE3JMi2rUQWaDmBklIaaqvu3Lc,3321
|
|
|
205
205
|
ultralytics/utils/patches.py,sha256=SgMqeMsq2K6JoBJP1NplXMl9C6rK0JeJUChjBrJOneo,2750
|
|
206
206
|
ultralytics/utils/plotting.py,sha256=I3YYLSsmj1BX8S5DphsedAm0RfisrPbeLpyuzsKXbqY,53288
|
|
207
207
|
ultralytics/utils/tal.py,sha256=xuIyryUjaaYHkHPG9GvBwh1xxN2Hq4y3hXOtuERehwY,16017
|
|
208
|
-
ultralytics/utils/torch_utils.py,sha256=
|
|
208
|
+
ultralytics/utils/torch_utils.py,sha256=LwicOi4hI801LilElKmArs0z8T_e4wPCsyTcd2Y70Pk,27028
|
|
209
209
|
ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
|
|
210
210
|
ultralytics/utils/tuner.py,sha256=49KAadKZsUeCpwIm5Sn0grb0RPcMNI8vHGLwroDEJNI,6171
|
|
211
211
|
ultralytics/utils/callbacks/__init__.py,sha256=YrWqC3BVVaTLob4iCPR6I36mUxIUOpPJW7B_LjT78Qw,214
|
|
@@ -213,15 +213,15 @@ ultralytics/utils/callbacks/base.py,sha256=A8H6jXnPQJfOxA1ByTBWF2ePDs5ldccUabXG0
|
|
|
213
213
|
ultralytics/utils/callbacks/clearml.py,sha256=M9Fi1OfdWqcm8uVkauuX3zJIYhNh6Tp7Jo4CfA0u0nw,5923
|
|
214
214
|
ultralytics/utils/callbacks/comet.py,sha256=QR3-9f0L_W7nZWWg_OEN7t8La2JotapSS-CnNYVjCdk,13744
|
|
215
215
|
ultralytics/utils/callbacks/dvc.py,sha256=WIClMsuvhiiyrwRv5BsZLxjsxYNJ3Y8Vq7zN0Bthtro,5045
|
|
216
|
-
ultralytics/utils/callbacks/hub.py,sha256=
|
|
216
|
+
ultralytics/utils/callbacks/hub.py,sha256=EPewsLigFQc9ucTX2exKSlKBiaBNhYYyGC_nR2ragJo,3997
|
|
217
217
|
ultralytics/utils/callbacks/mlflow.py,sha256=_bUzHyPb0npne0WFlGzlGCy-X5sxGQhC_xA3dZbF08I,5391
|
|
218
218
|
ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyzC5q7p4ipQ,3756
|
|
219
219
|
ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
|
|
220
220
|
ultralytics/utils/callbacks/tensorboard.py,sha256=QEgOVhUqY9akOs5TJIwz1Rvn6l32xWLpOxlwEyWF0B8,4136
|
|
221
221
|
ultralytics/utils/callbacks/wb.py,sha256=9-fjQIdLjr3b73DTE3rHO171KvbH1VweJ-bmbv-rqTw,6747
|
|
222
|
-
ultralytics-8.2.
|
|
223
|
-
ultralytics-8.2.
|
|
224
|
-
ultralytics-8.2.
|
|
225
|
-
ultralytics-8.2.
|
|
226
|
-
ultralytics-8.2.
|
|
227
|
-
ultralytics-8.2.
|
|
222
|
+
ultralytics-8.2.41.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
|
223
|
+
ultralytics-8.2.41.dist-info/METADATA,sha256=OpSeNlqKDSM2DcYw5w86dWwabG7EvNaCmtqKwjPCGW8,41210
|
|
224
|
+
ultralytics-8.2.41.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
|
|
225
|
+
ultralytics-8.2.41.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
|
|
226
|
+
ultralytics-8.2.41.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
|
|
227
|
+
ultralytics-8.2.41.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|