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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.63"
3
+ __version__ = "8.3.64"
4
4
 
5
5
  import os
6
6
 
@@ -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: ")
@@ -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())[:-truncate]
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 = getattr(torch.nn, m[3:]) if "nn." in m else globals()[m] # get module
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):
@@ -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="production", # 'dev' or 'production'
1055
+ environment="runpod" if is_runpod() else "production",
1046
1056
  before_send=before_send,
1047
1057
  ignore_errors=[KeyboardInterrupt, FileNotFoundError],
1048
1058
  )
@@ -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
- return subprocess.run(["sudo", "--version"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL).returncode == 0
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
@@ -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(DEFAULT_CFG, name="tune").resolve() # must be absolute 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.63
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=sEEOEjr5AbRIanmikSj9X77osBrjhBQkbM_yZAUJjFw,709
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=IQcKuaCaJ-Toe5xA2DUvlFN577PiS2NGDU8YFbWLqO0,11886
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=KRmrjqWcCPgZEnb3O6Nj8Gutl-LUsWwxY_l-cIotS5o,48559
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=HauBQiSIH9JFmT-gnk_8FNJfYfhW2heoY3iU6AdIjv0,43988
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=2bVRKAmCrlTYigV51YI0wXM4U4sHPWXcyjTxiuhBVxw,49330
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=BbOVv3aJLhjFiS2F1Dgq3ztAvc5fcQTCqJ_B1Sb-8xc,30506
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=zhYAvVlUO4Bkijoscwlf_IKyE2FSJpFep_esuFLrG0c,6226
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.63.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
237
- ultralytics-8.3.63.dist-info/METADATA,sha256=H2F-IYlnZkUf_fpdzSXQS76dTk0Jkld2FdRiVPqgvFo,35284
238
- ultralytics-8.3.63.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
239
- ultralytics-8.3.63.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
240
- ultralytics-8.3.63.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
241
- ultralytics-8.3.63.dist-info/RECORD,,
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,,