ultralytics 8.1.31__py3-none-any.whl → 8.1.33__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.31"
3
+ __version__ = "8.1.33"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
@@ -112,6 +112,7 @@ CFG_FRACTION_KEYS = {
112
112
  "perspective",
113
113
  "flipud",
114
114
  "fliplr",
115
+ "bgr",
115
116
  "mosaic",
116
117
  "mixup",
117
118
  "copy_paste",
@@ -243,7 +244,7 @@ def check_cfg(cfg, hard=True):
243
244
  f"'{k}={v}' is of invalid type {type(v).__name__}. "
244
245
  f"Valid '{k}' types are int (i.e. '{k}=0') or float (i.e. '{k}=0.5')"
245
246
  )
246
- cfg[k] = float(v)
247
+ cfg[k] = v = float(v)
247
248
  if not (0.0 <= v <= 1.0):
248
249
  raise ValueError(f"'{k}={v}' is an invalid value. " f"Valid '{k}' values are between 0.0 and 1.0.")
249
250
  elif k in CFG_INT_KEYS and not isinstance(v, int):
@@ -0,0 +1,24 @@
1
+ # Ultralytics YOLO 🚀, AGPL-3.0 license
2
+ # African-wildlife dataset by Ultralytics
3
+ # Documentation: https://docs.ultralytics.com/datasets/detect/african-wildlife/
4
+ # Example usage: yolo train data=african-wildlife.yaml
5
+ # parent
6
+ # ├── ultralytics
7
+ # └── datasets
8
+ # └── african-wildlife ← downloads here (100 MB)
9
+
10
+ # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
11
+ path: ../datasets/african-wildlife # dataset root dir
12
+ train: train/images # train images (relative to 'path') 1052 images
13
+ val: valid/images # val images (relative to 'path') 225 images
14
+ test: test/images # test images (relative to 'path') 227 images
15
+
16
+ # Classes
17
+ names:
18
+ 0: buffalo
19
+ 1: elephant
20
+ 2: rhino
21
+ 3: zebra
22
+
23
+ # Download script/URL (optional)
24
+ download: https://ultralytics.com/assets/african-wildlife.zip
@@ -111,6 +111,7 @@ shear: 0.0 # (float) image shear (+/- deg)
111
111
  perspective: 0.0 # (float) image perspective (+/- fraction), range 0-0.001
112
112
  flipud: 0.0 # (float) image flip up-down (probability)
113
113
  fliplr: 0.5 # (float) image flip left-right (probability)
114
+ bgr: 0.0 # (float) image channel BGR (probability)
114
115
  mosaic: 1.0 # (float) image mosaic (probability)
115
116
  mixup: 0.0 # (float) image mixup (probability)
116
117
  copy_paste: 0.0 # (float) segment copy-paste (probability)
@@ -886,6 +886,7 @@ class Format:
886
886
  mask_ratio (int): Downsample ratio for masks. Default is 4.
887
887
  mask_overlap (bool): Whether to overlap masks. Default is True.
888
888
  batch_idx (bool): Keep batch indexes. Default is True.
889
+ bgr (float): The probability to return BGR images. Default is 0.0.
889
890
  """
890
891
 
891
892
  def __init__(
@@ -898,6 +899,7 @@ class Format:
898
899
  mask_ratio=4,
899
900
  mask_overlap=True,
900
901
  batch_idx=True,
902
+ bgr=0.0,
901
903
  ):
902
904
  """Initializes the Format class with given parameters."""
903
905
  self.bbox_format = bbox_format
@@ -908,6 +910,7 @@ class Format:
908
910
  self.mask_ratio = mask_ratio
909
911
  self.mask_overlap = mask_overlap
910
912
  self.batch_idx = batch_idx # keep the batch indexes
913
+ self.bgr = bgr
911
914
 
912
915
  def __call__(self, labels):
913
916
  """Return formatted image, classes, bounding boxes & keypoints to be used by 'collate_fn'."""
@@ -948,7 +951,8 @@ class Format:
948
951
  """Format the image for YOLO from Numpy array to PyTorch tensor."""
949
952
  if len(img.shape) < 3:
950
953
  img = np.expand_dims(img, -1)
951
- img = np.ascontiguousarray(img.transpose(2, 0, 1)[::-1])
954
+ img = img.transpose(2, 0, 1)
955
+ img = np.ascontiguousarray(img[::-1] if random.uniform(0, 1) > self.bgr else img)
952
956
  img = torch.from_numpy(img)
953
957
  return img
954
958
 
@@ -167,6 +167,7 @@ class YOLODataset(BaseDataset):
167
167
  batch_idx=True,
168
168
  mask_ratio=hyp.mask_ratio,
169
169
  mask_overlap=hyp.overlap_mask,
170
+ bgr=hyp.bgr if self.augment else 0.0, # only affect training.
170
171
  )
171
172
  )
172
173
  return transforms
@@ -119,30 +119,27 @@ class Model(nn.Module):
119
119
  self.metrics = None # validation/training metrics
120
120
  self.session = None # HUB session
121
121
  self.task = task # task type
122
- self.model_name = model = str(model).strip() # strip spaces
122
+ model = str(model).strip()
123
123
 
124
124
  # Check if Ultralytics HUB model from https://hub.ultralytics.com
125
125
  if self.is_hub_model(model):
126
126
  # Fetch model from HUB
127
- checks.check_requirements("hub-sdk>=0.0.5")
127
+ checks.check_requirements("hub-sdk>=0.0.6")
128
128
  self.session = self._get_hub_session(model)
129
129
  model = self.session.model_file
130
130
 
131
131
  # Check if Triton Server model
132
132
  elif self.is_triton_model(model):
133
- self.model = model
133
+ self.model_name = self.model = model
134
134
  self.task = task
135
135
  return
136
136
 
137
137
  # Load or create new YOLO model
138
- model = checks.check_model_file_from_stem(model) # add suffix, i.e. yolov8n -> yolov8n.pt
139
138
  if Path(model).suffix in (".yaml", ".yml"):
140
139
  self._new(model, task=task, verbose=verbose)
141
140
  else:
142
141
  self._load(model, task=task)
143
142
 
144
- self.model_name = model
145
-
146
143
  def __call__(
147
144
  self,
148
145
  source: Union[str, Path, int, list, tuple, np.ndarray, torch.Tensor] = None,
@@ -190,8 +187,8 @@ class Model(nn.Module):
190
187
  return any(
191
188
  (
192
189
  model.startswith(f"{HUB_WEB_ROOT}/models/"), # i.e. https://hub.ultralytics.com/models/MODEL_ID
193
- [len(x) for x in model.split("_")] == [42, 20], # APIKEY_MODELID
194
- len(model) == 20 and not Path(model).exists() and all(x not in model for x in "./\\"), # MODELID
190
+ [len(x) for x in model.split("_")] == [42, 20], # APIKEY_MODEL
191
+ len(model) == 20 and not Path(model).exists() and all(x not in model for x in "./\\"), # MODEL
195
192
  )
196
193
  )
197
194
 
@@ -215,6 +212,7 @@ class Model(nn.Module):
215
212
  # Below added to allow export from YAMLs
216
213
  self.model.args = {**DEFAULT_CFG_DICT, **self.overrides} # combine default and model args (prefer model args)
217
214
  self.model.task = self.task
215
+ self.model_name = cfg
218
216
 
219
217
  def _load(self, weights: str, task=None) -> None:
220
218
  """
@@ -224,19 +222,23 @@ class Model(nn.Module):
224
222
  weights (str): model checkpoint to be loaded
225
223
  task (str | None): model task
226
224
  """
227
- suffix = Path(weights).suffix
228
- if suffix == ".pt":
225
+ if weights.lower().startswith(("https://", "http://", "rtsp://", "rtmp://", "tcp://")):
226
+ weights = checks.check_file(weights) # automatically download and return local filename
227
+ weights = checks.check_model_file_from_stem(weights) # add suffix, i.e. yolov8n -> yolov8n.pt
228
+
229
+ if Path(weights).suffix == ".pt":
229
230
  self.model, self.ckpt = attempt_load_one_weight(weights)
230
231
  self.task = self.model.args["task"]
231
232
  self.overrides = self.model.args = self._reset_ckpt_args(self.model.args)
232
233
  self.ckpt_path = self.model.pt_path
233
234
  else:
234
- weights = checks.check_file(weights)
235
+ weights = checks.check_file(weights) # runs in all cases, not redundant with above call
235
236
  self.model, self.ckpt = weights, None
236
237
  self.task = task or guess_model_task(weights)
237
238
  self.ckpt_path = weights
238
239
  self.overrides["model"] = weights
239
240
  self.overrides["task"] = self.task
241
+ self.model_name = weights
240
242
 
241
243
  def _check_is_pytorch_model(self) -> None:
242
244
  """Raises TypeError is model is not a PyTorch model."""
@@ -95,6 +95,7 @@ class Tuner:
95
95
  "perspective": (0.0, 0.001), # image perspective (+/- fraction), range 0-0.001
96
96
  "flipud": (0.0, 1.0), # image flip up-down (probability)
97
97
  "fliplr": (0.0, 1.0), # image flip left-right (probability)
98
+ "bgr": (0.0, 1.0), # image channel bgr (probability)
98
99
  "mosaic": (0.0, 1.0), # image mixup (probability)
99
100
  "mixup": (0.0, 1.0), # image mixup (probability)
100
101
  "copy_paste": (0.0, 1.0), # segment copy-paste (probability)
@@ -23,7 +23,7 @@ def login(api_key: str = None, save=True) -> bool:
23
23
  Returns:
24
24
  (bool): True if authentication is successful, False otherwise.
25
25
  """
26
- checks.check_requirements("hub-sdk>=0.0.2")
26
+ checks.check_requirements("hub-sdk>=0.0.6")
27
27
  from hub_sdk import HUBClient
28
28
 
29
29
  api_key_url = f"{HUB_WEB_ROOT}/settings?tab=api+keys" # set the redirect URL
@@ -202,13 +202,10 @@ class AutoBackend(nn.Module):
202
202
  ov_model = core.read_model(model=str(w), weights=w.with_suffix(".bin"))
203
203
  if ov_model.get_parameters()[0].get_layout().empty:
204
204
  ov_model.get_parameters()[0].set_layout(ov.Layout("NCHW"))
205
- batch_dim = ov.get_batch(ov_model)
206
- if batch_dim.is_static:
207
- batch_size = batch_dim.get_length()
208
205
 
209
206
  # OpenVINO inference modes are 'LATENCY', 'THROUGHPUT' (not recommended), or 'CUMULATIVE_THROUGHPUT'
210
207
  inference_mode = "CUMULATIVE_THROUGHPUT" if batch > 1 else "LATENCY"
211
- LOGGER.info(f"Using OpenVINO {inference_mode} mode for batch-size={batch_size} inference...")
208
+ LOGGER.info(f"Using OpenVINO {inference_mode} mode for batch={batch} inference...")
212
209
  ov_compiled_model = core.compile_model(
213
210
  ov_model,
214
211
  device_name="AUTO", # AUTO selects best available device, do not modify
@@ -606,7 +603,7 @@ class AutoBackend(nn.Module):
606
603
  from ultralytics.engine.exporter import export_formats
607
604
 
608
605
  sf = list(export_formats().Suffix) # export suffixes
609
- if not is_url(p, check=False) and not isinstance(p, str):
606
+ if not is_url(p) and not isinstance(p, str):
610
607
  check_suffix(p, sf) # checks
611
608
  name = Path(p).name
612
609
  types = [s in name for s in sf]
ultralytics/nn/tasks.py CHANGED
@@ -572,7 +572,7 @@ class WorldModel(DetectionModel):
572
572
  check_requirements("git+https://github.com/openai/CLIP.git")
573
573
  import clip
574
574
 
575
- if not self.clip_model:
575
+ if not getattr(self, "clip_model", None): # for backwards compatibility of models lacking clip_model attribute
576
576
  self.clip_model = clip.load("ViT-B/32")[0]
577
577
  device = next(self.clip_model.parameters()).device
578
578
  text_token = clip.tokenize(text).to(device)
@@ -315,7 +315,7 @@ def check_font(font="Arial.ttf"):
315
315
 
316
316
  # Download to USER_CONFIG_DIR if missing
317
317
  url = f"https://ultralytics.com/assets/{name}"
318
- if downloads.is_url(url):
318
+ if downloads.is_url(url, check=True):
319
319
  downloads.safe_download(url=url, file=file)
320
320
  return file
321
321
 
@@ -498,7 +498,7 @@ def check_file(file, suffix="", download=True, hard=True):
498
498
  raise FileNotFoundError(f"'{file}' does not exist")
499
499
  elif len(files) > 1 and hard:
500
500
  raise FileNotFoundError(f"Multiple files match '{file}', specify exact path: {files}")
501
- return files[0] if len(files) else [] # return file
501
+ return files[0] if len(files) else [] if hard else file # return file
502
502
 
503
503
 
504
504
  def check_yaml(file, suffix=(".yaml", ".yml"), hard=True):
@@ -726,4 +726,4 @@ def cuda_is_available() -> bool:
726
726
 
727
727
 
728
728
  # Define constants
729
- IS_PYTHON_3_12 = check_version(PYTHON_VERSION, "==3.12", name="Python ", hard=False)
729
+ IS_PYTHON_3_12 = PYTHON_VERSION.startswith("3.12")
@@ -33,7 +33,7 @@ GITHUB_ASSETS_NAMES = (
33
33
  GITHUB_ASSETS_STEMS = [Path(k).stem for k in GITHUB_ASSETS_NAMES]
34
34
 
35
35
 
36
- def is_url(url, check=True):
36
+ def is_url(url, check=False):
37
37
  """
38
38
  Validates if the given string is a URL and optionally checks if the URL exists online.
39
39
 
@@ -24,6 +24,7 @@ try:
24
24
  except ImportError:
25
25
  thop = None
26
26
 
27
+ # Version checks (all default to version>=min_version)
27
28
  TORCH_1_9 = check_version(torch.__version__, "1.9.0")
28
29
  TORCH_1_13 = check_version(torch.__version__, "1.13.0")
29
30
  TORCH_2_0 = check_version(torch.__version__, "2.0.0")
@@ -3,7 +3,7 @@
3
3
  import subprocess
4
4
 
5
5
  from ultralytics.cfg import TASK2DATA, TASK2METRIC, get_save_dir
6
- from ultralytics.utils import DEFAULT_CFG, DEFAULT_CFG_DICT, LOGGER, NUM_THREADS
6
+ from ultralytics.utils import DEFAULT_CFG, DEFAULT_CFG_DICT, LOGGER, NUM_THREADS, checks
7
7
 
8
8
 
9
9
  def run_ray_tune(
@@ -40,7 +40,7 @@ def run_ray_tune(
40
40
  train_args = {}
41
41
 
42
42
  try:
43
- subprocess.run("pip install ray[tune]".split(), check=True)
43
+ subprocess.run("pip install ray[tune]<=2.9.3".split(), check=True) # do not add single quotes here
44
44
 
45
45
  import ray
46
46
  from ray import tune
@@ -48,7 +48,7 @@ def run_ray_tune(
48
48
  from ray.air.integrations.wandb import WandbLoggerCallback
49
49
  from ray.tune.schedulers import ASHAScheduler
50
50
  except ImportError:
51
- raise ModuleNotFoundError('Tuning hyperparameters requires Ray Tune. Install with: pip install "ray[tune]"')
51
+ raise ModuleNotFoundError('Ray Tune required but not found. To install run: pip install "ray[tune]<=2.9.3"')
52
52
 
53
53
  try:
54
54
  import wandb
@@ -57,6 +57,7 @@ def run_ray_tune(
57
57
  except (ImportError, AssertionError):
58
58
  wandb = False
59
59
 
60
+ checks.check_version(ray.__version__, "<=2.9.3", "ray")
60
61
  default_space = {
61
62
  # 'optimizer': tune.choice(['SGD', 'Adam', 'AdamW', 'NAdam', 'RAdam', 'RMSProp']),
62
63
  "lr0": tune.uniform(1e-5, 1e-1),
@@ -77,6 +78,7 @@ def run_ray_tune(
77
78
  "perspective": tune.uniform(0.0, 0.001), # image perspective (+/- fraction), range 0-0.001
78
79
  "flipud": tune.uniform(0.0, 1.0), # image flip up-down (probability)
79
80
  "fliplr": tune.uniform(0.0, 1.0), # image flip left-right (probability)
81
+ "bgr": tune.uniform(0.0, 1.0), # image channel BGR (probability)
80
82
  "mosaic": tune.uniform(0.0, 1.0), # image mixup (probability)
81
83
  "mixup": tune.uniform(0.0, 1.0), # image mixup (probability)
82
84
  "copy_paste": tune.uniform(0.0, 1.0), # segment copy-paste (probability)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.1.31
3
+ Version: 8.1.33
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
@@ -67,7 +67,7 @@ Requires-Dist: coremltools >=7.0 ; (platform_system != "Windows" and python_vers
67
67
  Requires-Dist: tensorflow <=2.13.1 ; (python_version <= "3.11") and extra == 'export'
68
68
  Requires-Dist: tensorflowjs >=3.9.0 ; (python_version <= "3.11") and extra == 'export'
69
69
  Provides-Extra: extra
70
- Requires-Dist: hub-sdk >=0.0.2 ; extra == 'extra'
70
+ Requires-Dist: hub-sdk >=0.0.5 ; extra == 'extra'
71
71
  Requires-Dist: ipython ; extra == 'extra'
72
72
  Requires-Dist: albumentations >=1.0.3 ; extra == 'extra'
73
73
  Requires-Dist: pycocotools >=2.0.7 ; extra == 'extra'
@@ -1,8 +1,8 @@
1
- ultralytics/__init__.py,sha256=rDgevqxLqhO8NJR6otxXOqpbVQbtuhyXvkKoXK1rhL8,625
1
+ ultralytics/__init__.py,sha256=nSJaKs51Mt6vlyRUP0OTpfUYjkjmRpOu1eukiArzyqo,625
2
2
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
3
3
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
4
- ultralytics/cfg/__init__.py,sha256=rNlOdOpORYyqCj97ePycRxGr-gVvmmr2KOVFdXE262Y,21258
5
- ultralytics/cfg/default.yaml,sha256=jc6iBzaQIg_uohd5hHPBtYp6gJIRtYqsChwYVTRjIkI,8091
4
+ ultralytics/cfg/__init__.py,sha256=4DFeQcRmsOUUJtP49MezHhWKlE52mUSHI7bKFglOq4k,21273
5
+ ultralytics/cfg/default.yaml,sha256=zHRtcoaFUp6LSHRFtOzaj1GCLmVHLS1ymNhnIffcWGM,8142
6
6
  ultralytics/cfg/datasets/Argoverse.yaml,sha256=FyeuJT5CHq_9d4hlfAf0kpZlnbUMO0S--UJ1yIqcdKk,3134
7
7
  ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=YDsyFPI6F6-OQXLBM3hOXo3vADYREwZzmMQfJNdpWyM,1193
8
8
  ultralytics/cfg/datasets/DOTAv1.yaml,sha256=dxLUliHvJOW4q4vJRu5qIYVvNfjvXWB7GVh_Fhk--dM,1163
@@ -12,6 +12,7 @@ ultralytics/cfg/datasets/Objects365.yaml,sha256=kiiV4KLMH2mcPPRrg6cQGygnbiTrHxwt
12
12
  ultralytics/cfg/datasets/SKU-110K.yaml,sha256=geRkccBRl2eKgfNYTOPYwD9mTfqktTBGiMJoE3PZEnA,2493
13
13
  ultralytics/cfg/datasets/VOC.yaml,sha256=3-CDpjIq_s5pkbsJ9TjrYIeV24rYGuJGu4Qg6uktEZE,3655
14
14
  ultralytics/cfg/datasets/VisDrone.yaml,sha256=NfrbjVnE48E7TPbxtF7rtQHvVBO0DchFJFEuGrG1VRU,3073
15
+ ultralytics/cfg/datasets/african-wildlife.yaml,sha256=vtFAaFD2wZQmt3ze-LMUOeUa-7QG57LAVwuazCbROcU,869
15
16
  ultralytics/cfg/datasets/brain-tumor.yaml,sha256=o1rX1_iw97HjiG904l4u42x13jyHOGvfmWEzz0BpOZg,795
16
17
  ultralytics/cfg/datasets/carparts-seg.yaml,sha256=pvTi3EH2j6UuG0LHoQJ7JjQv_cJoO8UKSXPptUTnl8U,1207
17
18
  ultralytics/cfg/datasets/coco-pose.yaml,sha256=w7H-J2e87GIV_PZdRDgqEFa75ObScpBK_l85U4ZMsMo,1603
@@ -60,11 +61,11 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=YrPmj18p1UU40kJH5NRdL_4S8f7knggkk_q
60
61
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=QvHmtuwulK4X6j3T5VEqtCm0sbWWBUVmWPcCcM20qe0,688
61
62
  ultralytics/data/__init__.py,sha256=A3i0n-2MnNzSdYqhM8xynBO2HJNKGSXWhPvRyO0_u1I,409
62
63
  ultralytics/data/annotator.py,sha256=evXQzARVerc0hb9ol-n_GrrHf-dlXO4lCMMWEZoJ2UM,2117
63
- ultralytics/data/augment.py,sha256=ORotqUN-qulkHxzoW5hFF_CZDlBhuaqGgAsiPUVIf4I,52000
64
+ ultralytics/data/augment.py,sha256=fKqaWKk-EEy-imtMD8fIzmPvH4gt4X7oEGDBWU5ocpQ,52177
64
65
  ultralytics/data/base.py,sha256=_rbKt666SKVUqQtoMyzmYMCEE4rDNryPM_uweRqE4hA,13363
65
66
  ultralytics/data/build.py,sha256=ktZEi8RJ93kYdLWBlX7R4Hx1M2XrpHl833CdC6Hav9I,6406
66
67
  ultralytics/data/converter.py,sha256=DJ5aSk7w-RBKqrrABUoOahP_Lgccn7ujJSmVufOkBps,16503
67
- ultralytics/data/dataset.py,sha256=aBia_ZUUqynstW2BRS1sGp2ggnhUkeUSZ_QC2nyJmvo,17616
68
+ ultralytics/data/dataset.py,sha256=0d0Q8ORYkDOQyaemsJAq_jvZckK_QLpky_K52KIkrCo,17695
68
69
  ultralytics/data/loaders.py,sha256=zrfxXQ5CMFXKTR_FUPk3oKHwXruKmoXfuJq4B0vcSyA,23045
69
70
  ultralytics/data/split_dota.py,sha256=1q2FZC0SE4deRpXUSbKTbUAjX9VeejUIFM2DBLF8Cco,9961
70
71
  ultralytics/data/utils.py,sha256=5R-GRSvyyrZ2yOnTZ4utuek3NSHYAsjW_4aURgMkeG8,29782
@@ -75,13 +76,13 @@ ultralytics/data/explorer/gui/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2
75
76
  ultralytics/data/explorer/gui/dash.py,sha256=a2s8oJKI8kqnWEcIyqCCzvIyvM_uZmfMaxrOdwmiq7k,10044
76
77
  ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
77
78
  ultralytics/engine/exporter.py,sha256=pwTQCo88Sd41NqYKx5Jp15fSqhFgaY3Z5gfLm8uzLR0,53882
78
- ultralytics/engine/model.py,sha256=SD9bLH30PGqnIxXT1uxgHu5xlrgca8jV2luErK9Fh8w,39194
79
+ ultralytics/engine/model.py,sha256=uemH3-CTwKTMbbiJnIqtReCNy-5TEK9VD737v3VIqxg,39435
79
80
  ultralytics/engine/predictor.py,sha256=wQRKdWGDTP5A6CS0gTC6U3RPDMhP3QkEzWSPm6eqCkU,17022
80
81
  ultralytics/engine/results.py,sha256=njylLUuhZQE0ry9IPH0uN8zXV_q89ZfRqghNEF5PQw0,30246
81
82
  ultralytics/engine/trainer.py,sha256=C04cEN9v-kvR2dIIjgAN8dBAx8XSTChlQkDxAxfwTlU,34527
82
- ultralytics/engine/tuner.py,sha256=DzgTH3uk-VUUVoJ0K3tM4N5TJ6A3fMNlcDYr5g2I9lA,11763
83
+ ultralytics/engine/tuner.py,sha256=zttHrQkvXuUVTB7jmM4Z85GgIsQ2hjpW9YrMccrQ4wo,11829
83
84
  ultralytics/engine/validator.py,sha256=rcmJSGrsAfj-ryQktv6-fe0hAT7Z8CLNhUUUf0VsPYI,14645
84
- ultralytics/hub/__init__.py,sha256=hNKAjBFZAi8_ZYasurDpDMlEOmFw0GrXCV7kLb2A-zE,5068
85
+ ultralytics/hub/__init__.py,sha256=U4j-2QPdwSDlxw6RgFYnnJXOoIzLtwke4TkY2A8q4ws,5068
85
86
  ultralytics/hub/auth.py,sha256=hc97pJ01OfI8oQ7uw3ubKbiVCDSGxSGJHoo9W6hrrNw,5403
86
87
  ultralytics/hub/session.py,sha256=kFwufDIY7TeV79DdEQBKYrU5883WxgCrpJoTr1S5QuE,14649
87
88
  ultralytics/hub/utils.py,sha256=BoqNvi7yLUGrTNVEugFALhJkmpobW87gMVZ2dzDckRk,9734
@@ -138,8 +139,8 @@ ultralytics/models/yolo/segment/predict.py,sha256=xtA0ZZyuh9WVpX7zZFdAeCkWnxhQ30
138
139
  ultralytics/models/yolo/segment/train.py,sha256=aOQpDIptZfKSl9mFa6B-3W3QccMRlmBINBkI9K8-3sQ,2298
139
140
  ultralytics/models/yolo/segment/val.py,sha256=njiF6RWddS-HOWxVvlk5PXRw6UOgEt_HEOZVPF7rruQ,11745
140
141
  ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,587
141
- ultralytics/nn/autobackend.py,sha256=ldDepfx4mfQVgk4w6lAqhLtxng3kchJRNSb35qMrpUg,28836
142
- ultralytics/nn/tasks.py,sha256=G0OrHmSN4QW2SlkmGSfjXzXmOWZUiCQ4QKPHb0_9SwM,42806
142
+ ultralytics/nn/autobackend.py,sha256=Z9sDchChAqJ-sSQlUNwoGHTFxFRay1-i76MNUz0qZU8,28678
143
+ ultralytics/nn/tasks.py,sha256=k6cl1H1hWtQXLxO_s5D6fa_DYyFzIekAMigh3lD36_A,42894
143
144
  ultralytics/nn/modules/__init__.py,sha256=Ga3MDpwX6DeI7VSH8joti5uleP4mgkQGolbe8RLZ2T8,2326
144
145
  ultralytics/nn/modules/block.py,sha256=n0ilrK3Vjdoc9-OwvY_Bp8Hw5N2BMHwgt-jfH4CzxFQ,25589
145
146
  ultralytics/nn/modules/conv.py,sha256=ndUYNL2f9DK41y1vVbtEusMByXy-LMMsBKlcWjRQ9Z8,12722
@@ -164,9 +165,9 @@ ultralytics/trackers/utils/matching.py,sha256=c_pthBfu9sWeMVYe-dSecdWcQxUey-mQT2
164
165
  ultralytics/utils/__init__.py,sha256=SN7wyoJP8zaDzqUoDIHTyV3tqprIgCTfT738kge0EPI,37500
165
166
  ultralytics/utils/autobatch.py,sha256=ygZ3f2ByIkcujB89ENcTnGWWnAQw5Pbg6nBuShg-5t4,3863
166
167
  ultralytics/utils/benchmarks.py,sha256=cj_sztcI-hzfvRX8vzfXo4wmQe2CuQUcDHBO9THBbco,18285
167
- ultralytics/utils/checks.py,sha256=eTgj9HBxo677iehOrkIaiCRfeERRJhWAHHGmIPYntvQ,27815
168
+ ultralytics/utils/checks.py,sha256=ENayYz6TIb7Uuf6fLYoPuZC5ITLcbCabbpwpLBoT89c,27811
168
169
  ultralytics/utils/dist.py,sha256=3HeNbY2gp7vYhcvVhsrvTrQXpQmgT8tpmnzApf3eQRA,2267
169
- ultralytics/utils/downloads.py,sha256=KfGCmL1lwetMOZTYqvz-NkIdIA8fxFYxBGxF3-leZQ0,21495
170
+ ultralytics/utils/downloads.py,sha256=IVuwBodagj7GOGnzy868TBq4TC8O2d9TlV94_Uzi_KA,21496
170
171
  ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,816
171
172
  ultralytics/utils/files.py,sha256=TVfY0Wi5IsUc4YdsDzC0dAg-jAP5exYvwqB3VmXhDLY,6761
172
173
  ultralytics/utils/instance.py,sha256=fPClvPPtTk8VeXWiRv90DrFk1j1lTUKdYJtpZKUDDtA,15575
@@ -176,9 +177,9 @@ ultralytics/utils/ops.py,sha256=GFe_tx8MVKT56xelbAuQjiJ28ohpzARpD6BzGyJ1yMk,3326
176
177
  ultralytics/utils/patches.py,sha256=SgMqeMsq2K6JoBJP1NplXMl9C6rK0JeJUChjBrJOneo,2750
177
178
  ultralytics/utils/plotting.py,sha256=YVJvEDozm1vm_Yf39jLPQ24Qst_f_lzEm-NeDjMElfQ,44705
178
179
  ultralytics/utils/tal.py,sha256=xuIyryUjaaYHkHPG9GvBwh1xxN2Hq4y3hXOtuERehwY,16017
179
- ultralytics/utils/torch_utils.py,sha256=LgArI6s5wUhoDR0RBe3CoUkAkq3WpAg0YQPcL__rr_o,25182
180
+ ultralytics/utils/torch_utils.py,sha256=0Uuv7xERiwZWBwD89L3MzGaqNAlxoW27bGLS5ymqVME,25237
180
181
  ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
181
- ultralytics/utils/tuner.py,sha256=mMa3PT5zvpHsTfKgOvFlRhDpogdCD1qSdNBVmU5Xop4,6003
182
+ ultralytics/utils/tuner.py,sha256=bQE80f4p6PKb0iuSu4rSrXkS6LDGGUvGbyKB52nyVIA,6185
182
183
  ultralytics/utils/callbacks/__init__.py,sha256=YrWqC3BVVaTLob4iCPR6I36mUxIUOpPJW7B_LjT78Qw,214
183
184
  ultralytics/utils/callbacks/base.py,sha256=sOe3JvyBFmRwVZ8_Q03u7JwTeOOm9CI4s9-UEhnG0xA,5777
184
185
  ultralytics/utils/callbacks/clearml.py,sha256=K7bDf5tS8xL4KeFMkoVDL2kKkil3f4qoKy8KfZkD854,5897
@@ -190,9 +191,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyz
190
191
  ultralytics/utils/callbacks/raytune.py,sha256=6OgGNuC35F29lw8Dl_d0lue4-iBR6dqrBVQnIRQDx4E,632
191
192
  ultralytics/utils/callbacks/tensorboard.py,sha256=hRmWjbqdA4RNaLuSZznuDcpOBW-_-_Ga0u-B8UU-7ZI,4134
192
193
  ultralytics/utils/callbacks/wb.py,sha256=4QI81nHdzgwhXHlmTiRxLqunvkKakLXYUhHTUY1ZeHA,6635
193
- ultralytics-8.1.31.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
194
- ultralytics-8.1.31.dist-info/METADATA,sha256=e4f4Z8r6jRG5M_RoEfX0BDtwKwAx5S0HJEOLZDgZDZM,40330
195
- ultralytics-8.1.31.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
196
- ultralytics-8.1.31.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
197
- ultralytics-8.1.31.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
198
- ultralytics-8.1.31.dist-info/RECORD,,
194
+ ultralytics-8.1.33.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
195
+ ultralytics-8.1.33.dist-info/METADATA,sha256=dmv1kbJLjGfIZXm0bAPxZVYRC0NZa9KZhO0Pn2HK9Zc,40330
196
+ ultralytics-8.1.33.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
197
+ ultralytics-8.1.33.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
198
+ ultralytics-8.1.33.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
199
+ ultralytics-8.1.33.dist-info/RECORD,,