ultralytics 8.3.63__py3-none-any.whl → 8.3.64__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.
- ultralytics/__init__.py +1 -1
- ultralytics/engine/tuner.py +2 -1
- ultralytics/nn/modules/block.py +2 -2
- ultralytics/nn/tasks.py +7 -1
- ultralytics/utils/__init__.py +11 -1
- ultralytics/utils/checks.py +3 -2
- ultralytics/utils/tuner.py +4 -2
- {ultralytics-8.3.63.dist-info → ultralytics-8.3.64.dist-info}/METADATA +1 -1
- {ultralytics-8.3.63.dist-info → ultralytics-8.3.64.dist-info}/RECORD +13 -13
- {ultralytics-8.3.63.dist-info → ultralytics-8.3.64.dist-info}/LICENSE +0 -0
- {ultralytics-8.3.63.dist-info → ultralytics-8.3.64.dist-info}/WHEEL +0 -0
- {ultralytics-8.3.63.dist-info → ultralytics-8.3.64.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.3.63.dist-info → ultralytics-8.3.64.dist-info}/top_level.txt +0 -0
ultralytics/__init__.py
CHANGED
ultralytics/engine/tuner.py
CHANGED
@@ -101,7 +101,8 @@ class Tuner:
|
|
101
101
|
"copy_paste": (0.0, 1.0), # segment copy-paste (probability)
|
102
102
|
}
|
103
103
|
self.args = get_cfg(overrides=args)
|
104
|
-
self.tune_dir = get_save_dir(self.args, name="tune")
|
104
|
+
self.tune_dir = get_save_dir(self.args, name=self.args.name or "tune")
|
105
|
+
self.args.name = None # reset to not affect training directory
|
105
106
|
self.tune_csv = self.tune_dir / "tune_results.csv"
|
106
107
|
self.callbacks = _callbacks or callbacks.get_default_callbacks()
|
107
108
|
self.prefix = colorstr("Tuner: ")
|
ultralytics/nn/modules/block.py
CHANGED
@@ -1139,10 +1139,10 @@ class TorchVision(nn.Module):
|
|
1139
1139
|
else:
|
1140
1140
|
self.m = torchvision.models.__dict__[model](pretrained=bool(weights))
|
1141
1141
|
if unwrap:
|
1142
|
-
layers = list(self.m.children())
|
1142
|
+
layers = list(self.m.children())
|
1143
1143
|
if isinstance(layers[0], nn.Sequential): # Second-level for some models like EfficientNet, Swin
|
1144
1144
|
layers = [*list(layers[0].children()), *layers[1:]]
|
1145
|
-
self.m = nn.Sequential(*layers)
|
1145
|
+
self.m = nn.Sequential(*(layers[:-truncate] if truncate else layers))
|
1146
1146
|
self.split = split
|
1147
1147
|
else:
|
1148
1148
|
self.split = False
|
ultralytics/nn/tasks.py
CHANGED
@@ -955,7 +955,13 @@ def parse_model(d, ch, verbose=True): # model_dict, input_channels(3)
|
|
955
955
|
ch = [ch]
|
956
956
|
layers, save, c2 = [], [], ch[-1] # layers, savelist, ch out
|
957
957
|
for i, (f, n, m, args) in enumerate(d["backbone"] + d["head"]): # from, number, module, args
|
958
|
-
m =
|
958
|
+
m = (
|
959
|
+
getattr(torch.nn, m[3:])
|
960
|
+
if "nn." in m
|
961
|
+
else getattr(__import__("torchvision").ops, m[16:])
|
962
|
+
if "torchvision.ops." in m
|
963
|
+
else globals()[m]
|
964
|
+
) # get module
|
959
965
|
for j, a in enumerate(args):
|
960
966
|
if isinstance(a, str):
|
961
967
|
with contextlib.suppress(ValueError):
|
ultralytics/utils/__init__.py
CHANGED
@@ -577,6 +577,16 @@ def is_jupyter():
|
|
577
577
|
return IS_COLAB or IS_KAGGLE
|
578
578
|
|
579
579
|
|
580
|
+
def is_runpod():
|
581
|
+
"""
|
582
|
+
Check if the current script is running inside a RunPod container.
|
583
|
+
|
584
|
+
Returns:
|
585
|
+
(bool): True if running in RunPod, False otherwise.
|
586
|
+
"""
|
587
|
+
return "RUNPOD_POD_ID" in os.environ
|
588
|
+
|
589
|
+
|
580
590
|
def is_docker() -> bool:
|
581
591
|
"""
|
582
592
|
Determine if the script is running inside a Docker container.
|
@@ -1042,7 +1052,7 @@ def set_sentry():
|
|
1042
1052
|
auto_enabling_integrations=False,
|
1043
1053
|
traces_sample_rate=1.0,
|
1044
1054
|
release=__version__,
|
1045
|
-
environment="
|
1055
|
+
environment="runpod" if is_runpod() else "production",
|
1046
1056
|
before_send=before_send,
|
1047
1057
|
ignore_errors=[KeyboardInterrupt, FileNotFoundError],
|
1048
1058
|
)
|
ultralytics/utils/checks.py
CHANGED
@@ -787,11 +787,12 @@ def is_sudo_available() -> bool:
|
|
787
787
|
Check if the sudo command is available in the environment.
|
788
788
|
|
789
789
|
Returns:
|
790
|
-
bool: True if the sudo command is available, False otherwise.
|
790
|
+
(bool): True if the sudo command is available, False otherwise.
|
791
791
|
"""
|
792
792
|
if WINDOWS:
|
793
793
|
return False
|
794
|
-
|
794
|
+
cmd = "sudo --version"
|
795
|
+
return subprocess.run(cmd, shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL).returncode == 0
|
795
796
|
|
796
797
|
|
797
798
|
# Run checks and define constants
|
ultralytics/utils/tuner.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
2
2
|
|
3
|
-
from ultralytics.cfg import TASK2DATA, TASK2METRIC, get_save_dir
|
3
|
+
from ultralytics.cfg import TASK2DATA, TASK2METRIC, get_cfg, get_save_dir
|
4
4
|
from ultralytics.utils import DEFAULT_CFG, DEFAULT_CFG_DICT, LOGGER, NUM_THREADS, checks
|
5
5
|
|
6
6
|
|
@@ -134,7 +134,9 @@ def run_ray_tune(
|
|
134
134
|
tuner_callbacks = [WandbLoggerCallback(project="YOLOv8-tune")] if wandb else []
|
135
135
|
|
136
136
|
# Create the Ray Tune hyperparameter search tuner
|
137
|
-
tune_dir = get_save_dir(
|
137
|
+
tune_dir = get_save_dir(
|
138
|
+
get_cfg(DEFAULT_CFG, train_args), name=train_args.pop("name", "tune")
|
139
|
+
).resolve() # must be absolute dir
|
138
140
|
tune_dir.mkdir(parents=True, exist_ok=True)
|
139
141
|
tuner = tune.Tuner(
|
140
142
|
trainable_with_resources,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: ultralytics
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.64
|
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>
|
@@ -7,7 +7,7 @@ tests/test_exports.py,sha256=bvi2GgwxiAIpnAEQQ4iImffA7zke65_CDwoXOF7anuE,8797
|
|
7
7
|
tests/test_integrations.py,sha256=p3DMnnPMKsV0Qm82JVJUIY1UZ67xRgF9E8AaL76TEHE,6154
|
8
8
|
tests/test_python.py,sha256=tW-EFJC2rjl_DvAa8khXGWYdypseQjrLjGHhe2p9r9A,23238
|
9
9
|
tests/test_solutions.py,sha256=aY0G3vNzXGCENG9FD76MfUp7jgzeESPsUvbvQYBUvH0,4205
|
10
|
-
ultralytics/__init__.py,sha256=
|
10
|
+
ultralytics/__init__.py,sha256=re8M3cQOdKVR3CsCTM1XB6E6QzFTFkBBZKw8_a9ZLao,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=9xBYqfr4VxaDx3MkyK0ePIOr8iZ7BfCC2H1VNqfFInQ,39601
|
@@ -107,7 +107,7 @@ ultralytics/engine/model.py,sha256=tgzwnspighsesavuOEpirHS_5VPukQinj9sBAUnXpUE,5
|
|
107
107
|
ultralytics/engine/predictor.py,sha256=I66hWs-SV6Yu8QTsrr9ZEWqfDblKdQkJaIqyHoFHgeQ,17740
|
108
108
|
ultralytics/engine/results.py,sha256=sf_JPDTp9lCrcjdloTsZOBbSfzX5oVW9CL6PYf-uW8U,75114
|
109
109
|
ultralytics/engine/trainer.py,sha256=1zT-C9YeByROTO8nEq38fzGYMt15sizkAuDHcRYEcu8,37434
|
110
|
-
ultralytics/engine/tuner.py,sha256=
|
110
|
+
ultralytics/engine/tuner.py,sha256=fY-zuAGN8r2bkRVoxxLAz73DfA5CLojbiDP7TEUsAR0,11976
|
111
111
|
ultralytics/engine/validator.py,sha256=snmE1O0wJIX610bvSOk6pV_jf2pXEQ8IdvKVkX8_agI,14901
|
112
112
|
ultralytics/hub/__init__.py,sha256=1ifzSYV0PIT4ZWOm2V7HnpGyY3G3hCz0malw3AXHFlY,5660
|
113
113
|
ultralytics/hub/auth.py,sha256=akS7QMg93L_cBjDGOc0Jns5-m3ao_VzBCcyKLb4f0sI,5569
|
@@ -173,10 +173,10 @@ ultralytics/models/yolo/world/train.py,sha256=6PVmQ0G-22OOPPwP_rqSobe2LM6e2b_lC7
|
|
173
173
|
ultralytics/models/yolo/world/train_world.py,sha256=sCtg4Hnq9Y7amYjlQsdvTHXH8cKSooipvcXu_1Iyb2k,4885
|
174
174
|
ultralytics/nn/__init__.py,sha256=rjociYD9lo_K-d-1s6TbdWklPLjTcEHk7OIlRDJstIE,615
|
175
175
|
ultralytics/nn/autobackend.py,sha256=ONLwYlT8tu6_U0ghXfcNmG6eH9UWH-HDwnBQH2mbYWs,35540
|
176
|
-
ultralytics/nn/tasks.py,sha256=
|
176
|
+
ultralytics/nn/tasks.py,sha256=bmxRb1_MZQGWNdHcuN6QeXPRoYnqPNZURT1O9vYkMh4,48710
|
177
177
|
ultralytics/nn/modules/__init__.py,sha256=02dPoAMtpPNQdHXHmvJeWZvJ_WG6eqwH8atLdFWgcuY,2713
|
178
178
|
ultralytics/nn/modules/activation.py,sha256=oRkhMdqlNpIxQb35pTSUeHV-h0VyLl96GOqvIZ4OvT8,923
|
179
|
-
ultralytics/nn/modules/block.py,sha256=
|
179
|
+
ultralytics/nn/modules/block.py,sha256=JiT7flwBw7P8DbHf-UUHqz4uGC6WYlMrXx2f9Vlsvx0,44014
|
180
180
|
ultralytics/nn/modules/conv.py,sha256=P3R8xTuE7GMJ2DJ_ye7D54Gh56tfh4ykNnIXBG2QcNQ,13140
|
181
181
|
ultralytics/nn/modules/head.py,sha256=RYT31wplr64yDSHLpEZy3fyqg9W8HWlXWKrltwpqGiQ,27962
|
182
182
|
ultralytics/nn/modules/transformer.py,sha256=fdc4xam82Dk8etahkhlc5RHW6dfY00klKj2od4QpdQo,18097
|
@@ -204,10 +204,10 @@ ultralytics/trackers/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6D
|
|
204
204
|
ultralytics/trackers/utils/gmc.py,sha256=kU54RozuGJcAVlyb5_HjXiNIUIX5VuH613AMc6Gdnwg,14597
|
205
205
|
ultralytics/trackers/utils/kalman_filter.py,sha256=OBvemZXptgn9v1sgBLvFomCqOWwjIB3-8wBbc8nakHo,21377
|
206
206
|
ultralytics/trackers/utils/matching.py,sha256=jOGfDMaWUOGHy3e_SF-vn7m0t8nUgLNsiBwhusdkF2g,7106
|
207
|
-
ultralytics/utils/__init__.py,sha256=
|
207
|
+
ultralytics/utils/__init__.py,sha256=n-cHhNxlVBmRl0uWjJtxnCcU1D4esvOyJZu6mYn5obU,49554
|
208
208
|
ultralytics/utils/autobatch.py,sha256=zc81HlAMArPASEbExty0E_zpITF8PVwin7w-xBFFZ5w,5048
|
209
209
|
ultralytics/utils/benchmarks.py,sha256=Njv__APyz_q39wpwVBPC7qTbFBLEWNx_72arkPxo_6U,25671
|
210
|
-
ultralytics/utils/checks.py,sha256=
|
210
|
+
ultralytics/utils/checks.py,sha256=nCCYwMZRHsLq-At6dVNlQrrDAFN2oj--uPjLKXMtkk4,30529
|
211
211
|
ultralytics/utils/dist.py,sha256=fuiJQEnyyL-SighlI3hUlZPaaSreUl4Q39snF6OhQtI,2386
|
212
212
|
ultralytics/utils/downloads.py,sha256=n5htu7rIp6izCeObZLjwaIz8t4RqoivmC2pYEa63KJo,21999
|
213
213
|
ultralytics/utils/errors.py,sha256=sXKDEd8ws3L-yIfG_-P_h86axbm37sJNha7kFBJbQMQ,844
|
@@ -221,7 +221,7 @@ ultralytics/utils/plotting.py,sha256=cl8mctrkBMMTE976yrqDn1I8dH6IPO3ROZl99t5fo9w
|
|
221
221
|
ultralytics/utils/tal.py,sha256=DO-c006HEI62pcrNRpmt4lpqJPC5yu3veRDOvUuExno,18498
|
222
222
|
ultralytics/utils/torch_utils.py,sha256=JQ8HvqIVD-iL640vPBD4e9uOihhVhMuFL2G-BR-AxSM,33155
|
223
223
|
ultralytics/utils/triton.py,sha256=2L1_rZ8xCJEjexRVj75g9YU-u4tQln_DJ5N1Yr_0bSs,4071
|
224
|
-
ultralytics/utils/tuner.py,sha256=
|
224
|
+
ultralytics/utils/tuner.py,sha256=V_FCt0NNLhRRIgAW35oAXAkc5tbjgX1cBcFeLyJnEJs,6294
|
225
225
|
ultralytics/utils/callbacks/__init__.py,sha256=hzL63Rce6VkZhP4Lcim9LKjadixaQG86nKqPhk7IkS0,242
|
226
226
|
ultralytics/utils/callbacks/base.py,sha256=nbeSPjPCOb0M6FsFQ5-uFxXVzUYwmFyE4wFoA66Jpug,5803
|
227
227
|
ultralytics/utils/callbacks/clearml.py,sha256=JH70T1OLPd9GSvC6HnaKkZHTr8fyE9RRcz3ukL62QPw,5961
|
@@ -233,9 +233,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=waZ_bRu0-qBKujTLuqonC2gx2DkgBuVnfq
|
|
233
233
|
ultralytics/utils/callbacks/raytune.py,sha256=TbuZlDb721aIkh-nMozZcP2g_ttUh2cG5LUaXmept6g,728
|
234
234
|
ultralytics/utils/callbacks/tensorboard.py,sha256=JHOEVlNQ5dYJPd4Z-EvqbXowuK5uA0p8wPgyyaIUQs0,4194
|
235
235
|
ultralytics/utils/callbacks/wb.py,sha256=ayhT2y62AcSOacnawshATU0rWrlSFQ77mrGgBdRl3W4,7086
|
236
|
-
ultralytics-8.3.
|
237
|
-
ultralytics-8.3.
|
238
|
-
ultralytics-8.3.
|
239
|
-
ultralytics-8.3.
|
240
|
-
ultralytics-8.3.
|
241
|
-
ultralytics-8.3.
|
236
|
+
ultralytics-8.3.64.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
237
|
+
ultralytics-8.3.64.dist-info/METADATA,sha256=ymu6RmD6CMHaTLGep7T3NZZeLeZazQzXknqYSt50wXA,35284
|
238
|
+
ultralytics-8.3.64.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
239
|
+
ultralytics-8.3.64.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
|
240
|
+
ultralytics-8.3.64.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
|
241
|
+
ultralytics-8.3.64.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|