ultralytics 8.3.73__py3-none-any.whl → 8.3.74__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.73"
3
+ __version__ = "8.3.74"
4
4
 
5
5
  import os
6
6
 
@@ -140,6 +140,7 @@ class Model(torch.nn.Module):
140
140
  return
141
141
 
142
142
  # Load or create new YOLO model
143
+ __import__("os").environ["CUBLAS_WORKSPACE_CONFIG"] = ":4096:8" # to avoid deterministic warnings
143
144
  if Path(model).suffix in {".yaml", ".yml"}:
144
145
  self._new(model, task=task, verbose=verbose)
145
146
  else:
@@ -583,7 +583,7 @@ class Results(SimpleClass):
583
583
  if save:
584
584
  annotator.save(filename)
585
585
 
586
- return annotator.result()
586
+ return annotator.im if pil else annotator.result()
587
587
 
588
588
  def show(self, *args, **kwargs):
589
589
  """
@@ -52,6 +52,7 @@ from ultralytics.utils.torch_utils import (
52
52
  select_device,
53
53
  strip_optimizer,
54
54
  torch_distributed_zero_first,
55
+ unset_deterministic,
55
56
  )
56
57
 
57
58
 
@@ -471,6 +472,7 @@ class BaseTrainer:
471
472
  self.plot_metrics()
472
473
  self.run_callbacks("on_train_end")
473
474
  self._clear_memory()
475
+ unset_deterministic()
474
476
  self.run_callbacks("teardown")
475
477
 
476
478
  def auto_batch(self, max_num_obj=0):
@@ -128,7 +128,6 @@ torch.set_printoptions(linewidth=320, precision=4, profile="default")
128
128
  np.set_printoptions(linewidth=320, formatter={"float_kind": "{:11.5g}".format}) # format short g, %precision=5
129
129
  cv2.setNumThreads(0) # prevent OpenCV from multithreading (incompatible with PyTorch DataLoader)
130
130
  os.environ["NUMEXPR_MAX_THREADS"] = str(NUM_THREADS) # NumExpr max threads
131
- os.environ["CUBLAS_WORKSPACE_CONFIG"] = ":4096:8" # for deterministic training to avoid CUDA warning
132
131
  os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3" # suppress verbose TF compiler warnings in Colab
133
132
  os.environ["TORCH_CPP_LOG_LEVEL"] = "ERROR" # suppress "NNPACK.cpp could not initialize NNPACK" warnings
134
133
  os.environ["KINETO_LOG_LEVEL"] = "5" # suppress verbose PyTorch profiler output when computing FLOPs
@@ -93,6 +93,8 @@ def benchmark(
93
93
  if isinstance(model, (str, Path)):
94
94
  model = YOLO(model)
95
95
  is_end2end = getattr(model.model.model[-1], "end2end", False)
96
+ data = data or TASK2DATA[model.task] # task to dataset, i.e. coco8.yaml for task=detect
97
+ key = TASK2METRIC[model.task] # task to metric, i.e. metrics/mAP50-95(B) for task=detect
96
98
 
97
99
  y = []
98
100
  t0 = time.time()
@@ -150,7 +152,9 @@ def benchmark(
150
152
  filename = model.pt_path or model.ckpt_path or model.model_name
151
153
  exported_model = model # PyTorch format
152
154
  else:
153
- filename = model.export(imgsz=imgsz, format=format, half=half, int8=int8, device=device, verbose=False)
155
+ filename = model.export(
156
+ imgsz=imgsz, format=format, half=half, int8=int8, data=data, device=device, verbose=False
157
+ )
154
158
  exported_model = YOLO(filename, task=model.task)
155
159
  assert suffix in str(filename), "export failed"
156
160
  emoji = "❎" # indicates export succeeded
@@ -164,11 +168,9 @@ def benchmark(
164
168
  exported_model.predict(ASSETS / "bus.jpg", imgsz=imgsz, device=device, half=half, verbose=False)
165
169
 
166
170
  # Validate
167
- data = data or TASK2DATA[model.task] # task to dataset, i.e. coco8.yaml for task=detect
168
171
  results = exported_model.val(
169
172
  data=data, batch=1, imgsz=imgsz, plots=False, device=device, half=half, int8=int8, verbose=False
170
173
  )
171
- key = TASK2METRIC[model.task] # task to metric, i.e. metrics/mAP50-95(B) for task=detect
172
174
  metric, speed = results.results_dict[key], results.speed["inference"]
173
175
  fps = round(1000 / (speed + eps), 2) # frames per second
174
176
  y.append([name, "✅", round(file_size(filename), 1), round(metric, 4), round(speed, 2), fps])
@@ -14,7 +14,7 @@ except (ImportError, AssertionError):
14
14
 
15
15
  def on_fit_epoch_end(trainer):
16
16
  """Sends training metrics to Ray Tune at end of each epoch."""
17
- if ray.train._internal.session._get_session(): # replacement for deprecated ray.tune.is_session_enabled()
17
+ if ray.train._internal.session.get_session(): # replacement for deprecated ray.tune.is_session_enabled()
18
18
  metrics = trainer.metrics
19
19
  session.report({**metrics, **{"epoch": trainer.epoch + 1}})
20
20
 
@@ -488,8 +488,15 @@ def init_seeds(seed=0, deterministic=False):
488
488
  else:
489
489
  LOGGER.warning("WARNING ⚠️ Upgrade to torch>=2.0.0 for deterministic training.")
490
490
  else:
491
- torch.use_deterministic_algorithms(False)
492
- torch.backends.cudnn.deterministic = False
491
+ unset_deterministic()
492
+
493
+
494
+ def unset_deterministic():
495
+ """Unsets all the configurations applied for deterministic training."""
496
+ torch.use_deterministic_algorithms(False)
497
+ torch.backends.cudnn.deterministic = False
498
+ os.environ.pop("CUBLAS_WORKSPACE_CONFIG", None)
499
+ os.environ.pop("PYTHONHASHSEED", None)
493
500
 
494
501
 
495
502
  class ModelEMA:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ultralytics
3
- Version: 8.3.73
3
+ Version: 8.3.74
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=T_z_NUS9URQXv83k5XNLHTuksJ8srtzbZnWuiiQWM98,9260
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=w9xoNgzXsQ-vzUz6EMJ1sJ21yzeJxXwKanndE7Nt-1Q,709
10
+ ultralytics/__init__.py,sha256=Qxmv1s_8OG3hItE_vx1c3R_I-L9FUUwE5AKzDsn7d1E,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=qP44HnFP4QcC5FQz29A-EGTuwdtxXAzPvw_IvCVmiqA,39771
@@ -103,10 +103,10 @@ ultralytics/data/split_dota.py,sha256=YI-i2MqdiBt06W67TJnBXQHJrqTnkJDJ3zzoL0UZVr
103
103
  ultralytics/data/utils.py,sha256=K8xyA1xHLpaeluUbqOl5fy6AWZ6nDciCBZJofjxzOuw,33841
104
104
  ultralytics/engine/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
105
105
  ultralytics/engine/exporter.py,sha256=14zD5klVbAqv1jh2QPmpDcGflBUlLurRhYGM-wH9hFI,76780
106
- ultralytics/engine/model.py,sha256=SbRt27DTUmq8S-yzog4o5EDcT4qX08EF7A8fyLzv4kQ,53275
106
+ ultralytics/engine/model.py,sha256=8CnLnd_c8Ecey4q2JZFJBbUPOYflr5cgjJnw4sH3Vyo,53382
107
107
  ultralytics/engine/predictor.py,sha256=jiYDAjupOlRUpPvw9tu7or9PjXtLm-YCRiawANtWxj0,17881
108
- ultralytics/engine/results.py,sha256=fw8KG7rr5_9GFiqSlOljfNtG8-7NNVzG-MRiIpOZ9hg,78095
109
- ultralytics/engine/trainer.py,sha256=ZGAc6C1_LUBHDdZlr6wT6sbMtDzWa5rr7M8QVlXpBLs,37362
108
+ ultralytics/engine/results.py,sha256=8iHooY3IpBsARBo9LsQJYUfJHlcXk7T7urB3gP6rViU,78120
109
+ ultralytics/engine/trainer.py,sha256=6LTw_52KBLuaQf6rAn-VQ8702cibBkGoaom-aKMbQrw,37417
110
110
  ultralytics/engine/tuner.py,sha256=EUlTs7KJQ2RVABm8pihr_14M_Z2kGSzJaWH-Y9TJYDw,11976
111
111
  ultralytics/engine/validator.py,sha256=r27X8HGeDEwq7V5sFjEQH_3EnP1CyG-HcOLpFABUisU,15034
112
112
  ultralytics/hub/__init__.py,sha256=1ifzSYV0PIT4ZWOm2V7HnpGyY3G3hCz0malw3AXHFlY,5660
@@ -204,9 +204,9 @@ 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=64PKHGoETwXhuZ9udE217hbjJHygLOPaYA66J2qMSno,7130
207
- ultralytics/utils/__init__.py,sha256=Ahn7Vn60HIquaBZwLWfWH4bKnm0JcpJXYxnOnY-RH-s,50010
207
+ ultralytics/utils/__init__.py,sha256=7_Kh3l2IBHLE_cM1BXPHgjasa-sRIpqnf_eicQw2RTk,49908
208
208
  ultralytics/utils/autobatch.py,sha256=zc81HlAMArPASEbExty0E_zpITF8PVwin7w-xBFFZ5w,5048
209
- ultralytics/utils/benchmarks.py,sha256=Jn29MQ3A3CjGjY7IQKo0odY7HGmyaIm7IwckMRK345w,26718
209
+ ultralytics/utils/benchmarks.py,sha256=enf8emMQ7OcZa6RokvwrNm4ZfW-XS7SBKp57staqGRM,26751
210
210
  ultralytics/utils/checks.py,sha256=Hz7yLxQHqzYJkL3HmGy6nhHLG2eYjwH5B0BK5GXV9a4,31011
211
211
  ultralytics/utils/dist.py,sha256=fuiJQEnyyL-SighlI3hUlZPaaSreUl4Q39snF6OhQtI,2386
212
212
  ultralytics/utils/downloads.py,sha256=aUESyJOE2d7mJwbGECHWLR3RF8HVQPSwNH0cfmLGgdI,21999
@@ -219,7 +219,7 @@ ultralytics/utils/ops.py,sha256=HJ33Z9U1_Fl2MJyiv1JKLb2hTmvQqbeNemqR0lbCZgQ,3457
219
219
  ultralytics/utils/patches.py,sha256=ARR89dP4YKq7Dd3g2eU-ukbnc2lo3BELukL_1c_d854,3298
220
220
  ultralytics/utils/plotting.py,sha256=hKji4TyxAmCXdSL264VX6dsC2AZYiL9StShI02dcAOM,62990
221
221
  ultralytics/utils/tal.py,sha256=DO-c006HEI62pcrNRpmt4lpqJPC5yu3veRDOvUuExno,18498
222
- ultralytics/utils/torch_utils.py,sha256=LjgZg5O9G2Qw1ZwX6axOt8QFwu3wqm0mWZHerMCy9jg,33165
222
+ ultralytics/utils/torch_utils.py,sha256=mhDD-usOKazv5h44ggJ3A2BX3E2ka-N8Sgo4zcsj2f0,33387
223
223
  ultralytics/utils/triton.py,sha256=2L1_rZ8xCJEjexRVj75g9YU-u4tQln_DJ5N1Yr_0bSs,4071
224
224
  ultralytics/utils/tuner.py,sha256=gySDBzTlq_klTOq6CGEyUN58HXzPCulObaMBHacXzHo,6294
225
225
  ultralytics/utils/callbacks/__init__.py,sha256=hzL63Rce6VkZhP4Lcim9LKjadixaQG86nKqPhk7IkS0,242
@@ -230,12 +230,12 @@ ultralytics/utils/callbacks/dvc.py,sha256=4ln4wqU3ZZTK5JfvUmbKfQuIdO6QohDSnFVV4v
230
230
  ultralytics/utils/callbacks/hub.py,sha256=bqU83kBnNZ0U9qjm0I9xvM4DWA0VMxSLxQDgjuTZbKM,3977
231
231
  ultralytics/utils/callbacks/mlflow.py,sha256=3y4xOPLZe1bES0ETWGJYywulTEUGv8I849e2TNms8yI,5420
232
232
  ultralytics/utils/callbacks/neptune.py,sha256=waZ_bRu0-qBKujTLuqonC2gx2DkgBuVnfqiBNPr7ssY,3841
233
- ultralytics/utils/callbacks/raytune.py,sha256=TbuZlDb721aIkh-nMozZcP2g_ttUh2cG5LUaXmept6g,728
233
+ ultralytics/utils/callbacks/raytune.py,sha256=A_NVWjyPNf2m6iB-mbW7SMpyqM9QBvpbPa-MCMFMtdk,727
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.73.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
237
- ultralytics-8.3.73.dist-info/METADATA,sha256=JjfVDY1CmYikQNDwKsNkGsErWwXrcTPhJKjHIDu013w,35158
238
- ultralytics-8.3.73.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
239
- ultralytics-8.3.73.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
240
- ultralytics-8.3.73.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
241
- ultralytics-8.3.73.dist-info/RECORD,,
236
+ ultralytics-8.3.74.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
237
+ ultralytics-8.3.74.dist-info/METADATA,sha256=60GpYqC0yL9xkMk7UnjahV3HtaXxBPRWcJAhKkTt3GM,35158
238
+ ultralytics-8.3.74.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
239
+ ultralytics-8.3.74.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
240
+ ultralytics-8.3.74.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
241
+ ultralytics-8.3.74.dist-info/RECORD,,