ultralytics 8.1.40__py3-none-any.whl → 8.1.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.1.40"
3
+ __version__ = "8.1.41"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
@@ -735,7 +735,10 @@ class Model(nn.Module):
735
735
 
736
736
  if hasattr(self.model, "names"):
737
737
  return check_class_names(self.model.names)
738
- elif self.predictor:
738
+ else:
739
+ if not self.predictor: # export formats will not have predictor defined until predict() is called
740
+ self.predictor = self._smart_load("predictor")(overrides=self.overrides, _callbacks=self.callbacks)
741
+ self.predictor.setup_model(model=self.model, verbose=False)
739
742
  return self.predictor.model.names
740
743
 
741
744
  @property
@@ -212,7 +212,7 @@ class BaseTrainer:
212
212
  # LOGGER.info(f'DDP info: RANK {RANK}, WORLD_SIZE {world_size}, DEVICE {self.device}')
213
213
  os.environ["TORCH_NCCL_BLOCKING_WAIT"] = "1" # set to enforce timeout
214
214
  dist.init_process_group(
215
- "nccl" if dist.is_nccl_available() else "gloo",
215
+ backend="nccl" if dist.is_nccl_available() else "gloo",
216
216
  timeout=timedelta(seconds=10800), # 3 hours
217
217
  rank=RANK,
218
218
  world_size=world_size,
@@ -648,8 +648,8 @@ class BaseTrainer:
648
648
 
649
649
  resume = True
650
650
  self.args = get_cfg(ckpt_args)
651
- self.args.model = str(last) # reinstate model
652
- for k in "imgsz", "batch": # allow arg updates to reduce memory on resume if crashed due to CUDA OOM
651
+ self.args.model = self.args.resume = str(last) # reinstate model
652
+ for k in "imgsz", "batch", "device": # allow arg updates to reduce memory or update device on resume
653
653
  if k in overrides:
654
654
  setattr(self.args, k, overrides[k])
655
655
 
@@ -662,7 +662,7 @@ class BaseTrainer:
662
662
 
663
663
  def resume_training(self, ckpt):
664
664
  """Resume YOLO training from given epoch and best fitness."""
665
- if ckpt is None:
665
+ if ckpt is None or not self.resume:
666
666
  return
667
667
  best_fitness = 0.0
668
668
  start_epoch = ckpt.get("epoch", -1) + 1
@@ -672,14 +672,11 @@ class BaseTrainer:
672
672
  if self.ema and ckpt.get("ema"):
673
673
  self.ema.ema.load_state_dict(ckpt["ema"].float().state_dict()) # EMA
674
674
  self.ema.updates = ckpt["updates"]
675
- if self.resume:
676
- assert start_epoch > 0, (
677
- f"{self.args.model} training to {self.epochs} epochs is finished, nothing to resume.\n"
678
- f"Start a new training without resuming, i.e. 'yolo train model={self.args.model}'"
679
- )
680
- LOGGER.info(
681
- f"Resuming training from {self.args.model} from epoch {start_epoch + 1} to {self.epochs} total epochs"
682
- )
675
+ assert start_epoch > 0, (
676
+ f"{self.args.model} training to {self.epochs} epochs is finished, nothing to resume.\n"
677
+ f"Start a new training without resuming, i.e. 'yolo train model={self.args.model}'"
678
+ )
679
+ LOGGER.info(f"Resuming training {self.args.model} from epoch {start_epoch + 1} to {self.epochs} total epochs")
683
680
  if self.epochs < start_epoch:
684
681
  LOGGER.info(
685
682
  f"{self.model} has been trained for {ckpt['epoch']} epochs. Fine-tuning for {self.epochs} more epochs."
@@ -28,6 +28,7 @@ from ultralytics.utils import (
28
28
  ONLINE,
29
29
  ROOT,
30
30
  USER_CONFIG_DIR,
31
+ Retry,
31
32
  SimpleNamespace,
32
33
  ThreadingLocked,
33
34
  TryExcept,
@@ -390,7 +391,8 @@ def check_requirements(requirements=ROOT.parent / "requirements.txt", exclude=()
390
391
  try:
391
392
  t = time.time()
392
393
  assert is_online(), "AutoUpdate skipped (offline)"
393
- LOGGER.info(subprocess.check_output(f"pip install --no-cache {s} {cmds}", shell=True).decode())
394
+ with Retry(times=2, delay=1): # run up to 2 times with 1-second retry delay
395
+ LOGGER.info(subprocess.check_output(f"pip install --no-cache {s} {cmds}", shell=True).decode())
394
396
  dt = time.time() - t
395
397
  LOGGER.info(
396
398
  f"{prefix} AutoUpdate success ✅ {dt:.1f}s, installed {n} package{'s' * (n > 1)}: {pkgs}\n"
@@ -513,7 +513,7 @@ def convert_optimizer_state_dict_to_fp16(state_dict):
513
513
  """
514
514
  for state in state_dict["state"].values():
515
515
  for k, v in state.items():
516
- if isinstance(v, torch.Tensor) and v.dtype is torch.float32:
516
+ if k != "step" and isinstance(v, torch.Tensor) and v.dtype is torch.float32:
517
517
  state[k] = v.half()
518
518
 
519
519
  return state_dict
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.1.40
3
+ Version: 8.1.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
@@ -1,4 +1,4 @@
1
- ultralytics/__init__.py,sha256=TSZwIs2y8cyq-LMs3SXTgNZFZ_JntqXqm5NLRfmdLfQ,625
1
+ ultralytics/__init__.py,sha256=lFvHnsBspb8aDTRHlGUm58PT7hhIa8sou9hVr7MGudg,625
2
2
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
3
3
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
4
4
  ultralytics/cfg/__init__.py,sha256=ugSQqHCg31bAE9rwhVrnLMNzKLShr9JxDFcN6kBTbUk,21316
@@ -77,10 +77,10 @@ ultralytics/data/explorer/gui/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2
77
77
  ultralytics/data/explorer/gui/dash.py,sha256=a2s8oJKI8kqnWEcIyqCCzvIyvM_uZmfMaxrOdwmiq7k,10044
78
78
  ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
79
79
  ultralytics/engine/exporter.py,sha256=ZQNF6SUj0NlgUCr9Tbj2TQJxLrgEJJPfdyo4LtL_WJA,53790
80
- ultralytics/engine/model.py,sha256=HXbjmIGCpEia7geNObJ9iw79zdLeIyer4BNUrsporRk,39541
80
+ ultralytics/engine/model.py,sha256=tCU9z_cQhdJTwUUce3a7rSeCWkUgJO4RfHNT29pB41E,39829
81
81
  ultralytics/engine/predictor.py,sha256=wQRKdWGDTP5A6CS0gTC6U3RPDMhP3QkEzWSPm6eqCkU,17022
82
82
  ultralytics/engine/results.py,sha256=MvrOBrBlRF7kbL-QwysMf9mIDy_lwQBTTYvy1x1FMME,30667
83
- ultralytics/engine/trainer.py,sha256=pljuLoqwhv3pIA99Ua3-jWG91vqL3VAgOTyz90AeAJg,34975
83
+ ultralytics/engine/trainer.py,sha256=JIyEh2HYLuFJI2bGRd8OOFe9ZlmEAas72Ce-WqaKPV8,34942
84
84
  ultralytics/engine/tuner.py,sha256=zttHrQkvXuUVTB7jmM4Z85GgIsQ2hjpW9YrMccrQ4wo,11829
85
85
  ultralytics/engine/validator.py,sha256=p0irfLSZa3-0TtcuGheI8kNbzPUqs_UM3TMK4VRUGK4,14645
86
86
  ultralytics/hub/__init__.py,sha256=U4j-2QPdwSDlxw6RgFYnnJXOoIzLtwke4TkY2A8q4ws,5068
@@ -169,7 +169,7 @@ ultralytics/trackers/utils/matching.py,sha256=c_pthBfu9sWeMVYe-dSecdWcQxUey-mQT2
169
169
  ultralytics/utils/__init__.py,sha256=ChS67z-V8SQDK43FWu1hfDJCLp2cLitLP4HCQtVJKY8,37539
170
170
  ultralytics/utils/autobatch.py,sha256=ygZ3f2ByIkcujB89ENcTnGWWnAQw5Pbg6nBuShg-5t4,3863
171
171
  ultralytics/utils/benchmarks.py,sha256=fpNWdrty1ULKP3jHFrRNln_o9gIT03F4KOE5xPuy0WI,18285
172
- ultralytics/utils/checks.py,sha256=3RFDw6trjQt8A8sbs0e3NsC25WO2ISYGromUKntmvr4,27922
172
+ ultralytics/utils/checks.py,sha256=OtBD-U90qsiYGSti7xq2LlhjbtgKbye05fJ4cgCst7s,28030
173
173
  ultralytics/utils/dist.py,sha256=3HeNbY2gp7vYhcvVhsrvTrQXpQmgT8tpmnzApf3eQRA,2267
174
174
  ultralytics/utils/downloads.py,sha256=j1S27awWiLTt1qC9l53WqH_BilM13JHLSVmQ2xFqh-4,21496
175
175
  ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,816
@@ -181,7 +181,7 @@ ultralytics/utils/ops.py,sha256=GFe_tx8MVKT56xelbAuQjiJ28ohpzARpD6BzGyJ1yMk,3326
181
181
  ultralytics/utils/patches.py,sha256=SgMqeMsq2K6JoBJP1NplXMl9C6rK0JeJUChjBrJOneo,2750
182
182
  ultralytics/utils/plotting.py,sha256=ILz1jEpmMQxeAdEHQ-E66XEJbsyYZqWhgQpLhDNpXvk,45077
183
183
  ultralytics/utils/tal.py,sha256=xuIyryUjaaYHkHPG9GvBwh1xxN2Hq4y3hXOtuERehwY,16017
184
- ultralytics/utils/torch_utils.py,sha256=aBCUPtVLTkdtsImlDaN0f8BCiGESU5rzTVhm74lCQms,25743
184
+ ultralytics/utils/torch_utils.py,sha256=b6SgmqhVr8qW8S9c_XoHNbHTy9Tm52_MCl6iK6UKt0U,25759
185
185
  ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
186
186
  ultralytics/utils/tuner.py,sha256=JhvBp6haKA6eqpNPpGJzzjjCmPxBx5phk9kHmt_jppw,6171
187
187
  ultralytics/utils/callbacks/__init__.py,sha256=YrWqC3BVVaTLob4iCPR6I36mUxIUOpPJW7B_LjT78Qw,214
@@ -195,9 +195,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyz
195
195
  ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
196
196
  ultralytics/utils/callbacks/tensorboard.py,sha256=hRmWjbqdA4RNaLuSZznuDcpOBW-_-_Ga0u-B8UU-7ZI,4134
197
197
  ultralytics/utils/callbacks/wb.py,sha256=4QI81nHdzgwhXHlmTiRxLqunvkKakLXYUhHTUY1ZeHA,6635
198
- ultralytics-8.1.40.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
199
- ultralytics-8.1.40.dist-info/METADATA,sha256=0oRr6J63TEFuDsb-EXJRA-0i2fPRJJ4MgBrbgq4s1B4,40330
200
- ultralytics-8.1.40.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
201
- ultralytics-8.1.40.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
202
- ultralytics-8.1.40.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
203
- ultralytics-8.1.40.dist-info/RECORD,,
198
+ ultralytics-8.1.41.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
199
+ ultralytics-8.1.41.dist-info/METADATA,sha256=1ZvyClcBCC17dlE6SKdJsvK9xiVdo8V2Ws5Y5bR1Ovo,40330
200
+ ultralytics-8.1.41.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
201
+ ultralytics-8.1.41.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
202
+ ultralytics-8.1.41.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
203
+ ultralytics-8.1.41.dist-info/RECORD,,