ultralytics 8.2.48__py3-none-any.whl → 8.2.49__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.

@@ -7,6 +7,7 @@ import random
7
7
  import time
8
8
  from contextlib import contextmanager
9
9
  from copy import deepcopy
10
+ from datetime import datetime
10
11
  from pathlib import Path
11
12
  from typing import Union
12
13
 
@@ -456,14 +457,17 @@ def init_seeds(seed=0, deterministic=False):
456
457
 
457
458
 
458
459
  class ModelEMA:
459
- """Updated Exponential Moving Average (EMA) from https://github.com/rwightman/pytorch-image-models
460
- Keeps a moving average of everything in the model state_dict (parameters and buffers)
460
+ """
461
+ Updated Exponential Moving Average (EMA) from https://github.com/rwightman/pytorch-image-models. Keeps a moving
462
+ average of everything in the model state_dict (parameters and buffers)
463
+
461
464
  For EMA details see https://www.tensorflow.org/api_docs/python/tf/train/ExponentialMovingAverage
465
+
462
466
  To disable EMA set the `enabled` attribute to `False`.
463
467
  """
464
468
 
465
469
  def __init__(self, model, decay=0.9999, tau=2000, updates=0):
466
- """Create EMA."""
470
+ """Initialize EMA for 'model' with given arguments."""
467
471
  self.ema = deepcopy(de_parallel(model)).eval() # FP32 EMA
468
472
  self.updates = updates # number of EMA updates
469
473
  self.decay = lambda x: decay * (1 - math.exp(-x / tau)) # decay exponential ramp (to help early epochs)
@@ -506,15 +510,25 @@ def strip_optimizer(f: Union[str, Path] = "best.pt", s: str = "") -> None:
506
510
  from pathlib import Path
507
511
  from ultralytics.utils.torch_utils import strip_optimizer
508
512
 
509
- for f in Path('path/to/weights').rglob('*.pt'):
513
+ for f in Path('path/to/model/checkpoints').rglob('*.pt'):
510
514
  strip_optimizer(f)
511
515
  ```
512
516
  """
513
- x = torch.load(f, map_location=torch.device("cpu"))
514
- if not isinstance(x, dict) or "model" not in x:
515
- LOGGER.info(f"Skipping {f}, not a valid Ultralytics model.")
517
+ try:
518
+ x = torch.load(f, map_location=torch.device("cpu"))
519
+ assert isinstance(x, dict), "checkpoint is not a Python dictionary"
520
+ assert "model" in x, "'model' missing from checkpoint"
521
+ except Exception as e:
522
+ LOGGER.warning(f"WARNING ⚠️ Skipping {f}, not a valid Ultralytics model: {e}")
516
523
  return
517
524
 
525
+ updates = {
526
+ "date": datetime.now().isoformat(),
527
+ "version": __version__,
528
+ "license": "AGPL-3.0 License (https://ultralytics.com/license)",
529
+ "docs": "https://docs.ultralytics.com",
530
+ }
531
+
518
532
  # Update model
519
533
  if x.get("ema"):
520
534
  x["model"] = x["ema"] # replace model with EMA
@@ -535,7 +549,7 @@ def strip_optimizer(f: Union[str, Path] = "best.pt", s: str = "") -> None:
535
549
  # x['model'].args = x['train_args']
536
550
 
537
551
  # Save
538
- torch.save(x, s or f)
552
+ torch.save({**updates, **x}, s or f, use_dill=False) # combine dicts (prefer to the right)
539
553
  mb = os.path.getsize(s or f) / 1e6 # file size
540
554
  LOGGER.info(f"Optimizer stripped from {f},{f' saved as {s},' if s else ''} {mb:.1f}MB")
541
555
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.2.48
3
+ Version: 8.2.49
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,16 +1,16 @@
1
1
  tests/__init__.py,sha256=9evx3lOdKZeY1iWXvH-FkMkgf8jLucWICoabzeD6aYg,626
2
- tests/conftest.py,sha256=WOrMDmrxdYskt1nQmbPPhZ6zo1cJzS4vO7gVcKuEo2k,2545
3
- tests/test_cli.py,sha256=nQs3UUfEq713bgRc082eFAVROce1XkPklWpg0uOJQ6o,4979
4
- tests/test_cuda.py,sha256=ErmZucvQrw6oGGXOM9TRW7vijNELfEVjYXoCnb_m29I,4957
5
- tests/test_engine.py,sha256=fFzcbqZuMkzZHjA5FMddWcqVE703iq8HB_a0Q2lcBKM,4705
6
- tests/test_explorer.py,sha256=r1pWer2y290Y0DqsM-La7egfEY0497YCdC4rwq3URV4,2178
7
- tests/test_exports.py,sha256=qc4YOgsGixqYLO6IRNY16-v6z14R0dp5fdni1v222xw,8034
8
- tests/test_integrations.py,sha256=8Ru7GyKV8j44EEc8X9_E7q7aR4CTOIMPuSagXjSGUxw,5847
9
- tests/test_python.py,sha256=kic6XuQrxKUt7IlIDNoGQRs7-Gs_pis7v5JlzlZcIqQ,20705
10
- ultralytics/__init__.py,sha256=nJ2pGlmY1w4GjyPQK1HcHqNGXbMtF6tbsQOS1x0WHoY,694
2
+ tests/conftest.py,sha256=3ZtD4VlMKK5jVJwIPCrNAcG63vywJzdLq7U2AfYR2VI,2919
3
+ tests/test_cli.py,sha256=KOEdoSwIwyZ_qFn02XdSy2CxtLdJsz7XnXVWmn7oc0s,5129
4
+ tests/test_cuda.py,sha256=uD-ddNEcBMFQmQ9iE4fIGh0EIcGwEoDEUNVCEHicaWE,5133
5
+ tests/test_engine.py,sha256=xW-UT9_9xZp-7-hSnbJgMw_ezTk6NqTOIiA59XZDmxA,4934
6
+ tests/test_explorer.py,sha256=NcxSJeB6FxwkN09hQl7nnQL--HjfHB_WcZk0mEmBNHI,2215
7
+ tests/test_exports.py,sha256=Uezf3OatpPHlo5qoPw-2kqkZxuMCF9L4XF2riD4vmII,8225
8
+ tests/test_integrations.py,sha256=xglcfMPjfVh346PV8WTpk6tBxraCXEFJEQyyJMr5tyU,6064
9
+ tests/test_python.py,sha256=80Iy-sn3qHBJ5Vg_mRbplj5CbCZNUNvikP4e2f2onnM,21728
10
+ ultralytics/__init__.py,sha256=ijX2QpsACNyCzQDWv7jCFB7y7q6X8pF7BiqxWZ0BbZI,694
11
11
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
12
12
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
13
- ultralytics/cfg/__init__.py,sha256=JblkT6Ze9MZ8hSs8gkV8JPcEKNMm-YqRqM4x501Dn9g,21507
13
+ ultralytics/cfg/__init__.py,sha256=XcIMQd1Nk5OecwjwdBJMNAaDbZV5mLCkZV2YZ7REPbA,25638
14
14
  ultralytics/cfg/default.yaml,sha256=xRKVF-Z9E3imXTU9OCK94kj3jGgYoo67VJQwuYlHiUU,8228
15
15
  ultralytics/cfg/datasets/Argoverse.yaml,sha256=FyeuJT5CHq_9d4hlfAf0kpZlnbUMO0S--UJ1yIqcdKk,3134
16
16
  ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=YDsyFPI6F6-OQXLBM3hOXo3vADYREwZzmMQfJNdpWyM,1193
@@ -92,21 +92,21 @@ ultralytics/data/loaders.py,sha256=UUL7yOmuseAG5RBVI-kLrLr42Vm4kL05Qqnc5jAmNW0,2
92
92
  ultralytics/data/split_dota.py,sha256=fWezt1Bo3jiZ6AyUWdBtTUuvLamPv1t7JD-DirM9gQ8,10142
93
93
  ultralytics/data/utils.py,sha256=zqFg4xaWU--fastZmwvZ3DxGyJQ3i4tVNLuYnqS1xxs,31044
94
94
  ultralytics/data/explorer/__init__.py,sha256=-Y3m1ZedepOQUv_KW82zaGxvU_PSHcuwUTFqG9BhAr4,113
95
- ultralytics/data/explorer/explorer.py,sha256=GqQcHkETxlS0w-lYUnTE_RJ9wPReK7c9XG41-k9FoxE,18668
95
+ ultralytics/data/explorer/explorer.py,sha256=YacduFQvYOgTRF0BhCZWpTEaGlhp7oRy9a49VvNysEQ,18998
96
96
  ultralytics/data/explorer/utils.py,sha256=EvvukQiQUTBrsZznmMnyEX2EqTuwZo_Geyc8yfi8NIA,7085
97
97
  ultralytics/data/explorer/gui/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
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=csuukmfnqkrcJQx9Z008LrobxhIOYubSj9jkCUHN2do,58557
101
- ultralytics/engine/model.py,sha256=XxV97SX-TWLU3FYY_FImupUJo75NQm7mTw7m5FIYDYM,39046
101
+ ultralytics/engine/model.py,sha256=8qD5irabp8BF7bBZGwztCu8yAVQQp1kksYSea9EhdEo,39078
102
102
  ultralytics/engine/predictor.py,sha256=W58kDCFH2AfoFzpGbos3k8zUEVsLunBuM8sc2B64rPY,17449
103
- ultralytics/engine/results.py,sha256=b9G9Cbf5DESuM8cyXNhKi9zeF--3rgmaq2mB8CVtS3s,30936
103
+ ultralytics/engine/results.py,sha256=I5vFrmtfHS-3N3_P-N_TgAu0GdQ2_1YOSoRhLMdJlf4,35365
104
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
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=VaTpoctiX0I8-diPS8ntUPRpFw4rUEV1jwjPRf9yZT8,16031
109
+ ultralytics/hub/session.py,sha256=uXkP8AayJClLUD9TP8AlJSqxm-OmTgCmTXl1TkO6jQc,16147
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
@@ -142,7 +142,7 @@ ultralytics/models/yolo/__init__.py,sha256=e1cZr9pbSbf3Ya2OvkTjGRwD_E2YZpe610xsk
142
142
  ultralytics/models/yolo/model.py,sha256=wOrJ6HWU9KhG7pVcgK4HdI8xe2GSShe8V4v4bJDVydM,4041
143
143
  ultralytics/models/yolo/classify/__init__.py,sha256=t-4pUHmgI2gjhc-l3bqNEcEtKD1dO40nD4Vc6Y2xD6o,355
144
144
  ultralytics/models/yolo/classify/predict.py,sha256=wFY4GIlWxe7idMndEw1RnDI63o53MTfiHKz0s2fOjAY,2513
145
- ultralytics/models/yolo/classify/train.py,sha256=9CRqtLkePo4ZkAzMTxDY4ztrNaWE34qnytYymfCEBzs,6888
145
+ ultralytics/models/yolo/classify/train.py,sha256=dNAUROnrS5LAbu6EKw29n6EUEoKYQaNjALoh3mo1Mm0,6291
146
146
  ultralytics/models/yolo/classify/val.py,sha256=MXdtWrBYVpfFuPfFPOTLKa_wBdTIA4dBZguT-EtldZ4,4909
147
147
  ultralytics/models/yolo/detect/__init__.py,sha256=JR8gZJWn7wMBbh-0j_073nxJVZTMFZVWTOG5Wnvk6w0,229
148
148
  ultralytics/models/yolo/detect/predict.py,sha256=_a9vH3DmKFY6eeztFTdj3nkfu_MKG6n7zb5rRKGjs9I,1510
@@ -167,13 +167,13 @@ ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,58
167
167
  ultralytics/nn/autobackend.py,sha256=stqN66L8iloqKxBBYaAespsj2ZoSossouFiFf_Txi0s,31163
168
168
  ultralytics/nn/tasks.py,sha256=PmSVVDtjFbIZYe-Tb1pd4uhJzr9syl_xWhhURLXRn4E,45827
169
169
  ultralytics/nn/modules/__init__.py,sha256=mARjWk83WPYF5phXhXfPbAu2ZohtdbHdi5zzoxyMubo,2553
170
- ultralytics/nn/modules/block.py,sha256=JiPwcbLzb7O_O5T1KkW0dIGJSfBwPaS-NNYuVkLBDwg,34384
170
+ ultralytics/nn/modules/block.py,sha256=DIXowCZn_Luc5VgGQEGXi34fqeiz_bhaNT48zEzguDM,34491
171
171
  ultralytics/nn/modules/conv.py,sha256=Ywe87IhuaS22mR2JJ9xjnW8Sb-m7WTjxuqIxV_Dv8lI,12722
172
172
  ultralytics/nn/modules/head.py,sha256=6VV6t2OJ_t9fCdhFxzcMcirp6lonv-xSm0o2yFghZZ0,26747
173
173
  ultralytics/nn/modules/transformer.py,sha256=AxD9uURpCl-EqvXe3DiG6JW-pBzB16G-AahLdZ7yayo,17909
174
174
  ultralytics/nn/modules/utils.py,sha256=779QnnKp9v8jv251ESduTXJ0ol8HkIOLbGQWwEGQjhU,3196
175
175
  ultralytics/solutions/__init__.py,sha256=aO9h0JQDfaQR2PCk7yCRxu2odb3Zxu76RdYSv9JPfm8,588
176
- ultralytics/solutions/ai_gym.py,sha256=h_ZME327T1LoxeRSAaDZg3sWJK3b6t1xJSg1CnBarE8,4733
176
+ ultralytics/solutions/ai_gym.py,sha256=KQdx0RP9t9y1MqYMVlYUSn09SVJSUwKvgxPri_DhczM,4721
177
177
  ultralytics/solutions/analytics.py,sha256=UI8HoegfIJGgvQPOt4-e9A0ss2_ofM7zzxcbKlhe66k,11572
178
178
  ultralytics/solutions/distance_calculation.py,sha256=pSIkyytHGRAaNzIrkkNkiOnSVWU1PYvURlCIV_jRORA,6505
179
179
  ultralytics/solutions/heatmap.py,sha256=AHXnmXhoQ95ph74zsdrvX_Lfy3wF0SsH0MIeTixE7Qg,10386
@@ -190,7 +190,7 @@ ultralytics/trackers/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7J
190
190
  ultralytics/trackers/utils/gmc.py,sha256=-1oBNFRB-9EawJmUOT566AygLCVxJw-jsPSIOl5j_Hk,13683
191
191
  ultralytics/trackers/utils/kalman_filter.py,sha256=0oqhk59NKEiwcJ2FXnw6_sT4bIFC6Wu5IY2B-TGxJKU,15168
192
192
  ultralytics/trackers/utils/matching.py,sha256=UxhSGa5pN6WoYwYSBAkkt-O7xMxUR47VuUB6PfVNkb4,5404
193
- ultralytics/utils/__init__.py,sha256=2nR2EZw9ljk9EIJsVr4gXD_u0kQUyOw4d3oeK4orhuw,38507
193
+ ultralytics/utils/__init__.py,sha256=905ZnRdmTrhXao2nsCP2mV2xAshsEKk0r4aOPP4EVPQ,38490
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
@@ -200,12 +200,12 @@ ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,8
200
200
  ultralytics/utils/files.py,sha256=TVfY0Wi5IsUc4YdsDzC0dAg-jAP5exYvwqB3VmXhDLY,6761
201
201
  ultralytics/utils/instance.py,sha256=5daM5nkxBv9hr5QzyII8zmuFj24hHuNtcr4EMCHAtpY,15654
202
202
  ultralytics/utils/loss.py,sha256=tAAi_l0SAtbtqT8AQSBSCvEyv342-r04H2KcSF1Yk_w,33795
203
- ultralytics/utils/metrics.py,sha256=3nuFZK_7rnhf6KjhflnRfHVN2i_ZB-LbGvIdbc177N8,53587
203
+ ultralytics/utils/metrics.py,sha256=C7qFuZjwGqbsG4sggm_qfm8gVuBUwHg_Fhxj08b6NfU,53671
204
204
  ultralytics/utils/ops.py,sha256=Jlb0YBkN_SMVT2AjKPEjxgOtgnj7i7HTBh9FEwpoprU,33509
205
205
  ultralytics/utils/patches.py,sha256=SgMqeMsq2K6JoBJP1NplXMl9C6rK0JeJUChjBrJOneo,2750
206
206
  ultralytics/utils/plotting.py,sha256=Aiu_J5mYGugvZ0WxHMbXftlR9lQh53iGPemHb2RT87k,55533
207
207
  ultralytics/utils/tal.py,sha256=xuIyryUjaaYHkHPG9GvBwh1xxN2Hq4y3hXOtuERehwY,16017
208
- ultralytics/utils/torch_utils.py,sha256=magdEcuNq7ZBIsM7SZdzLwCdM9LnTePlZp9ZTps8Pks,27189
208
+ ultralytics/utils/torch_utils.py,sha256=uuiXENrjF8a0PydZRfdp3bQ4oQZ9FyERXXfqGyXLCg0,27713
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
@@ -219,9 +219,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyz
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.48.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
223
- ultralytics-8.2.48.dist-info/METADATA,sha256=VT6LB4RZg55vGtKXhvx2vSMiiz9-2-0VPEHqfUwa6r4,41210
224
- ultralytics-8.2.48.dist-info/WHEEL,sha256=mguMlWGMX-VHnMpKOjjQidIo1ssRlCFu4a4mBpz1s2M,91
225
- ultralytics-8.2.48.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
226
- ultralytics-8.2.48.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
227
- ultralytics-8.2.48.dist-info/RECORD,,
222
+ ultralytics-8.2.49.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
223
+ ultralytics-8.2.49.dist-info/METADATA,sha256=dh_uPQjZxr7nyIO0lfbYI-qRpf-pyMmx79Z2HePDkMk,41210
224
+ ultralytics-8.2.49.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
225
+ ultralytics-8.2.49.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
226
+ ultralytics-8.2.49.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
227
+ ultralytics-8.2.49.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.1.1)
2
+ Generator: setuptools (70.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5