ultralytics 8.2.6__py3-none-any.whl → 8.2.8__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.2.6"
3
+ __version__ = "8.2.8"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
@@ -917,7 +917,6 @@ class Albumentations:
917
917
  return labels
918
918
 
919
919
 
920
- # TODO: technically this is not an augmentation, maybe we should put this to another files
921
920
  class Format:
922
921
  """
923
922
  Formats image annotations for object detection, instance segmentation, and pose estimation tasks. The class
ultralytics/data/build.py CHANGED
@@ -20,7 +20,7 @@ from ultralytics.data.loaders import (
20
20
  autocast_list,
21
21
  )
22
22
  from ultralytics.data.utils import IMG_FORMATS, VID_FORMATS
23
- from ultralytics.utils import RANK, colorstr
23
+ from ultralytics.utils import LINUX, NUM_THREADS, RANK, colorstr
24
24
  from ultralytics.utils.checks import check_file
25
25
 
26
26
  from .dataset import GroundingDataset, YOLODataset, YOLOMultiModalDataset
@@ -81,6 +81,8 @@ def seed_worker(worker_id): # noqa
81
81
  worker_seed = torch.initial_seed() % 2**32
82
82
  np.random.seed(worker_seed)
83
83
  random.seed(worker_seed)
84
+ if LINUX and hasattr(os, "sched_setaffinity"): # unsupported on macOS and Windows
85
+ os.sched_setaffinity(0, range(NUM_THREADS)) # fix https://github.com/ultralytics/ultralytics/pull/11195
84
86
 
85
87
 
86
88
  def build_yolo_dataset(cfg, img_path, batch, data, mode="train", rect=False, stride=32, multi_modal=False):
@@ -414,7 +414,7 @@ class Exporter:
414
414
  @try_export
415
415
  def export_openvino(self, prefix=colorstr("OpenVINO:")):
416
416
  """YOLOv8 OpenVINO export."""
417
- check_requirements("openvino>=2024.0.0") # requires openvino: https://pypi.org/project/openvino/
417
+ check_requirements(f'openvino{"<=2024.0.0" if ARM64 else ">=2024.0.0"}') # fix OpenVINO issue on ARM64
418
418
  import openvino as ov
419
419
 
420
420
  LOGGER.info(f"\n{prefix} starting export with openvino {ov.__version__}...")
@@ -329,6 +329,7 @@ class BaseTrainer:
329
329
  base_idx = (self.epochs - self.args.close_mosaic) * nb
330
330
  self.plot_idx.extend([base_idx, base_idx + 1, base_idx + 2])
331
331
  epoch = self.start_epoch
332
+ self.optimizer.zero_grad() # zero any resumed gradients to ensure stability on train start
332
333
  while True:
333
334
  self.epoch = epoch
334
335
  self.run_callbacks("on_train_epoch_start")
@@ -349,7 +350,6 @@ class BaseTrainer:
349
350
  LOGGER.info(self.progress_string())
350
351
  pbar = TQDM(enumerate(self.train_loader), total=nb)
351
352
  self.tloss = None
352
- self.optimizer.zero_grad()
353
353
  for i, batch in pbar:
354
354
  self.run_callbacks("on_train_batch_start")
355
355
  # Warmup
@@ -98,7 +98,6 @@ class Segment(Detect):
98
98
  self.nm = nm # number of masks
99
99
  self.npr = npr # number of protos
100
100
  self.proto = Proto(ch[0], self.npr, self.nm) # protos
101
- self.detect = Detect.forward
102
101
 
103
102
  c4 = max(ch[0] // 4, self.nm)
104
103
  self.cv4 = nn.ModuleList(nn.Sequential(Conv(x, c4, 3), Conv(c4, c4, 3), nn.Conv2d(c4, self.nm, 1)) for x in ch)
@@ -109,7 +108,7 @@ class Segment(Detect):
109
108
  bs = p.shape[0] # batch size
110
109
 
111
110
  mc = torch.cat([self.cv4[i](x[i]).view(bs, self.nm, -1) for i in range(self.nl)], 2) # mask coefficients
112
- x = self.detect(self, x)
111
+ x = Detect.forward(self, x)
113
112
  if self.training:
114
113
  return x, mc, p
115
114
  return (torch.cat([x, mc], 1), p) if self.export else (torch.cat([x[0], mc], 1), (x[1], mc, p))
@@ -122,7 +121,6 @@ class OBB(Detect):
122
121
  """Initialize OBB with number of classes `nc` and layer channels `ch`."""
123
122
  super().__init__(nc, ch)
124
123
  self.ne = ne # number of extra parameters
125
- self.detect = Detect.forward
126
124
 
127
125
  c4 = max(ch[0] // 4, self.ne)
128
126
  self.cv4 = nn.ModuleList(nn.Sequential(Conv(x, c4, 3), Conv(c4, c4, 3), nn.Conv2d(c4, self.ne, 1)) for x in ch)
@@ -136,7 +134,7 @@ class OBB(Detect):
136
134
  # angle = angle.sigmoid() * math.pi / 2 # [0, pi/2]
137
135
  if not self.training:
138
136
  self.angle = angle
139
- x = self.detect(self, x)
137
+ x = Detect.forward(self, x)
140
138
  if self.training:
141
139
  return x, angle
142
140
  return torch.cat([x, angle], 1) if self.export else (torch.cat([x[0], angle], 1), (x[1], angle))
@@ -154,7 +152,6 @@ class Pose(Detect):
154
152
  super().__init__(nc, ch)
155
153
  self.kpt_shape = kpt_shape # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
156
154
  self.nk = kpt_shape[0] * kpt_shape[1] # number of keypoints total
157
- self.detect = Detect.forward
158
155
 
159
156
  c4 = max(ch[0] // 4, self.nk)
160
157
  self.cv4 = nn.ModuleList(nn.Sequential(Conv(x, c4, 3), Conv(c4, c4, 3), nn.Conv2d(c4, self.nk, 1)) for x in ch)
@@ -163,7 +160,7 @@ class Pose(Detect):
163
160
  """Perform forward pass through YOLO model and return predictions."""
164
161
  bs = x[0].shape[0] # batch size
165
162
  kpt = torch.cat([self.cv4[i](x[i]).view(bs, self.nk, -1) for i in range(self.nl)], -1) # (bs, 17*3, h*w)
166
- x = self.detect(self, x)
163
+ x = Detect.forward(self, x)
167
164
  if self.training:
168
165
  return x, kpt
169
166
  pred_kpt = self.kpts_decode(bs, kpt)
@@ -14,7 +14,7 @@ import tkinter as tk
14
14
 
15
15
  class ParkingPtsSelection:
16
16
  def __init__(self, master):
17
- # Initialize window and widgets.
17
+ """Initializes the UI for selecting parking zone points in a tkinter window."""
18
18
  self.master = master
19
19
  master.title("Ultralytics Parking Zones Points Selector")
20
20
  self.initialize_ui()
@@ -109,6 +109,7 @@ class ParkingPtsSelection:
109
109
  messagebox.showwarning("Warning", "No bounding boxes to remove.")
110
110
 
111
111
  def save_to_json(self):
112
+ """Saves rescaled bounding boxes to 'bounding_boxes.json' based on image-to-canvas size ratio."""
112
113
  canvas_width, canvas_height = self.canvas.winfo_width(), self.canvas.winfo_height()
113
114
  width_scaling_factor = self.img_width / canvas_width
114
115
  height_scaling_factor = self.img_height / canvas_height
@@ -36,7 +36,7 @@ FILE = Path(__file__).resolve()
36
36
  ROOT = FILE.parents[1] # YOLO
37
37
  ASSETS = ROOT / "assets" # default images
38
38
  DEFAULT_CFG_PATH = ROOT / "cfg/default.yaml"
39
- NUM_THREADS = min(8, max(1, os.cpu_count() - 1)) # number of YOLOv5 multiprocessing threads
39
+ NUM_THREADS = min(8, max(1, os.cpu_count() - 1)) # number of YOLO multiprocessing threads
40
40
  AUTOINSTALL = str(os.getenv("YOLO_AUTOINSTALL", True)).lower() == "true" # global auto-install mode
41
41
  VERBOSE = str(os.getenv("YOLO_VERBOSE", True)).lower() == "true" # global verbose mode
42
42
  TQDM_BAR_FORMAT = "{l_bar}{bar:10}{r_bar}" if VERBOSE else None # tqdm bar format
@@ -419,7 +419,14 @@ def check_torchvision():
419
419
  """
420
420
 
421
421
  # Compatibility table
422
- compatibility_table = {"2.0": ["0.15"], "1.13": ["0.14"], "1.12": ["0.13"]}
422
+ compatibility_table = {
423
+ "2.3": ["0.18"],
424
+ "2.2": ["0.17"],
425
+ "2.1": ["0.16"],
426
+ "2.0": ["0.15"],
427
+ "1.13": ["0.14"],
428
+ "1.12": ["0.13"],
429
+ }
423
430
 
424
431
  # Extract only the major and minor versions
425
432
  v_torch = ".".join(torch.__version__.split("+")[0].split(".")[:2])
@@ -72,8 +72,11 @@ class Bboxes:
72
72
 
73
73
  def areas(self):
74
74
  """Return box areas."""
75
- self.convert("xyxy")
76
- return (self.bboxes[:, 2] - self.bboxes[:, 0]) * (self.bboxes[:, 3] - self.bboxes[:, 1])
75
+ return (
76
+ (self.bboxes[:, 2] - self.bboxes[:, 0]) * (self.bboxes[:, 3] - self.bboxes[:, 1]) # format xyxy
77
+ if self.format == "xyxy"
78
+ else self.bboxes[:, 3] * self.bboxes[:, 2] # format xywh or ltwh
79
+ )
77
80
 
78
81
  # def denormalize(self, w, h):
79
82
  # if not self.normalized:
@@ -340,11 +343,7 @@ class Instances:
340
343
  self.keypoints[..., 1] = self.keypoints[..., 1].clip(0, h)
341
344
 
342
345
  def remove_zero_area_boxes(self):
343
- """
344
- Remove zero-area boxes, i.e. after clipping some boxes may have zero width or height.
345
-
346
- This removes them.
347
- """
346
+ """Remove zero-area boxes, i.e. after clipping some boxes may have zero width or height."""
348
347
  good = self.bbox_areas > 0
349
348
  if not all(good):
350
349
  self._bboxes = self._bboxes[good]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.2.6
3
+ Version: 8.2.8
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
@@ -64,6 +64,7 @@ Requires-Dist: streamlit ; extra == 'explorer'
64
64
  Provides-Extra: export
65
65
  Requires-Dist: onnx >=1.12.0 ; extra == 'export'
66
66
  Requires-Dist: openvino >=2024.0.0 ; extra == 'export'
67
+ Requires-Dist: flatbuffers <100,>=23.5.26 ; (platform_machine == "aarch64") and extra == 'export'
67
68
  Requires-Dist: numpy ==1.23.5 ; (platform_machine == "aarch64") and extra == 'export'
68
69
  Requires-Dist: h5py !=3.11.0 ; (platform_machine == "aarch64") and extra == 'export'
69
70
  Requires-Dist: coremltools >=7.0 ; (platform_system != "Windows" and python_version <= "3.11") and extra == 'export'
@@ -72,7 +73,7 @@ Requires-Dist: tensorflowjs >=3.9.0 ; (python_version <= "3.11") and extra == 'e
72
73
  Provides-Extra: extra
73
74
  Requires-Dist: hub-sdk >=0.0.5 ; extra == 'extra'
74
75
  Requires-Dist: ipython ; extra == 'extra'
75
- Requires-Dist: albumentations >=1.0.3 ; extra == 'extra'
76
+ Requires-Dist: albumentations <=1.4.4,>=1.0.3 ; extra == 'extra'
76
77
  Requires-Dist: pycocotools >=2.0.7 ; extra == 'extra'
77
78
  Provides-Extra: logging
78
79
  Requires-Dist: comet ; extra == 'logging'
@@ -1,4 +1,4 @@
1
- ultralytics/__init__.py,sha256=EE1lQhKQv1xbvnB5weIqkbDBsm3fntYHC7AnQV7wYK8,632
1
+ ultralytics/__init__.py,sha256=n816rXwWPnPOPJ_vyk16ge6P1BJOJg1x8rBo30fvZ6U,632
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=4ZnvY2ULMGofFhjaRIzKQlGC5YVkvWkEAYAhnsKC1Po,21312
@@ -64,9 +64,9 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=YrPmj18p1UU40kJH5NRdL_4S8f7knggkk_q
64
64
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=QvHmtuwulK4X6j3T5VEqtCm0sbWWBUVmWPcCcM20qe0,688
65
65
  ultralytics/data/__init__.py,sha256=VGe-ATG7j35F4A4r8Jmzffjlhve4JAJPgRa5ahKTU18,616
66
66
  ultralytics/data/annotator.py,sha256=evXQzARVerc0hb9ol-n_GrrHf-dlXO4lCMMWEZoJ2UM,2117
67
- ultralytics/data/augment.py,sha256=81BOqY4DzxuNfw6Qg7rjBQTktU4JK2GHolXIhzXnAHg,57741
67
+ ultralytics/data/augment.py,sha256=tPnqJAP85-Ei9BnyJhd4liLjRn_8s-289mNc8adXpdk,57650
68
68
  ultralytics/data/base.py,sha256=9dZcoXtczloWSsbU-sOa9NlJ7lIGoarEUAp2rzP1jMI,13481
69
- ultralytics/data/build.py,sha256=NhETn_nGGEey8Dv8QOgro_j-KutfRCWyNHifEhqh_U4,7266
69
+ ultralytics/data/build.py,sha256=i_akfoF5ZrDCzXNpBeZDPvkLo61LN-GiYWjM7C5dKYA,7486
70
70
  ultralytics/data/converter.py,sha256=NLDiV67RshbKQnMJUiQQF11boVzEqgi2Hz39nKVAI4U,17528
71
71
  ultralytics/data/dataset.py,sha256=NFaXyHRn64TyTEbtSkr7SkqWXK8bEJl6lZ6M1JwO3MY,22201
72
72
  ultralytics/data/loaders.py,sha256=UxNLLV6rwUDog9MSOkHpDn52TO-X2g2P4a5ZwvB7Ii8,23142
@@ -78,11 +78,11 @@ ultralytics/data/explorer/utils.py,sha256=EvvukQiQUTBrsZznmMnyEX2EqTuwZo_Geyc8yf
78
78
  ultralytics/data/explorer/gui/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
79
79
  ultralytics/data/explorer/gui/dash.py,sha256=2oAbNroR2lfS45v53M1sRqZklLXbbj6qXqNxvplulC0,10087
80
80
  ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
81
- ultralytics/engine/exporter.py,sha256=CqVXwRRTs5g07-X-y9RQzdjj8WI4KMXURyQFOHGopww,54600
81
+ ultralytics/engine/exporter.py,sha256=5dgkElp8YfZXWp6yOXPLVVD650atg59UbWoFtpKgtPo,54606
82
82
  ultralytics/engine/model.py,sha256=4zSVSBP8Ex49bJjnOXm7g3Qr_NgbplHPCjdnVfZwfxM,40019
83
83
  ultralytics/engine/predictor.py,sha256=wQRKdWGDTP5A6CS0gTC6U3RPDMhP3QkEzWSPm6eqCkU,17022
84
84
  ultralytics/engine/results.py,sha256=MvrOBrBlRF7kbL-QwysMf9mIDy_lwQBTTYvy1x1FMME,30667
85
- ultralytics/engine/trainer.py,sha256=FK2PkQyUThIU5RYr8Qa38JZDRB3iOl85Sdbi4HrlQ5U,34987
85
+ ultralytics/engine/trainer.py,sha256=GpseAovVKLRgAoqG4bEVtQqemWdDcxrY7gE3vGRU9gs,35048
86
86
  ultralytics/engine/tuner.py,sha256=iZrgMmXSDpfuDu4bdFRflmAsscys2-8W8qAGxSyOVJE,11844
87
87
  ultralytics/engine/validator.py,sha256=Y21Uo8_Zto4qjk_YqQk6k7tyfpq_Qk9cfjeXeyDRxs8,14643
88
88
  ultralytics/hub/__init__.py,sha256=U4j-2QPdwSDlxw6RgFYnnJXOoIzLtwke4TkY2A8q4ws,5068
@@ -150,7 +150,7 @@ ultralytics/nn/tasks.py,sha256=a3FSkIUErlE7qI506ye5vGggqzMxqXWDkIbbLD4AGyI,43623
150
150
  ultralytics/nn/modules/__init__.py,sha256=KzLoyn2ldfReiQL8H8xsMC49Xvtb8Kv9ikE5Q3OBoAs,2326
151
151
  ultralytics/nn/modules/block.py,sha256=smIz3oNTDA7UKrAH5FfSMh08C12-avgWTeIkbgZIv18,25251
152
152
  ultralytics/nn/modules/conv.py,sha256=Ywe87IhuaS22mR2JJ9xjnW8Sb-m7WTjxuqIxV_Dv8lI,12722
153
- ultralytics/nn/modules/head.py,sha256=D3WOkBy1GLVy2ZwrM0O7FvjKafOtyVVMiICzeTM-khA,22338
153
+ ultralytics/nn/modules/head.py,sha256=3N_4zW1UvhI1jCrIxIkNYxQDdiW6HxtxpaNAAudq6NU,22236
154
154
  ultralytics/nn/modules/transformer.py,sha256=AxD9uURpCl-EqvXe3DiG6JW-pBzB16G-AahLdZ7yayo,17909
155
155
  ultralytics/nn/modules/utils.py,sha256=779QnnKp9v8jv251ESduTXJ0ol8HkIOLbGQWwEGQjhU,3196
156
156
  ultralytics/solutions/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
@@ -158,7 +158,7 @@ ultralytics/solutions/ai_gym.py,sha256=IZHpvmNyEQT_aqMTrA5sIjCsl3_5Zl2WG31HxGT6K
158
158
  ultralytics/solutions/distance_calculation.py,sha256=N1QB5uDG_6sp8jD5uSwp_NTPmyP4UCqJm9G2lNrgpr8,6334
159
159
  ultralytics/solutions/heatmap.py,sha256=LDY8cpmsenkaWgDmaKuOPMyQcPCH4jQeMvgbZlTx2fc,11970
160
160
  ultralytics/solutions/object_counter.py,sha256=nYwUN_9M5azW9zET_hnV7wIY8gDNR4LtUoWo4C2cbXw,11287
161
- ultralytics/solutions/parking_management.py,sha256=7M85ThMtQodv-zIfqCIkJccK-_gpOHz4VYiHHx43NwA,8656
161
+ ultralytics/solutions/parking_management.py,sha256=x7td7B_K600PZASikbRxwvPiv-xbm1quLpJE82Q3DmQ,8809
162
162
  ultralytics/solutions/queue_management.py,sha256=TBQ2dIKYtymBjhdw0Enxa22KHyH3IdXf2C-1Se21siA,6684
163
163
  ultralytics/solutions/speed_estimation.py,sha256=lvaU-F8f3V4KFVKFaNS7isIdYtMSFjh_zF9gl0Mals8,6714
164
164
  ultralytics/trackers/__init__.py,sha256=j72IgH2dZHQArMPK4YwcV5ieIw94fYvlGdQjB9cOQKw,227
@@ -170,15 +170,15 @@ ultralytics/trackers/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7J
170
170
  ultralytics/trackers/utils/gmc.py,sha256=vwcPA1n5zjPaBGhCDt8ItN7rq_6Sczsjn4gsXJfRylU,13688
171
171
  ultralytics/trackers/utils/kalman_filter.py,sha256=0oqhk59NKEiwcJ2FXnw6_sT4bIFC6Wu5IY2B-TGxJKU,15168
172
172
  ultralytics/trackers/utils/matching.py,sha256=UxhSGa5pN6WoYwYSBAkkt-O7xMxUR47VuUB6PfVNkb4,5404
173
- ultralytics/utils/__init__.py,sha256=BdmRL2UhbmzmWuhaB1iDUTOyQ3fTwOrB0aUijAgpOUg,39286
173
+ ultralytics/utils/__init__.py,sha256=zyk1cbMtgG8LB9s1FRKRaN2ffMlkKQcVWnhGj1EPP5Y,39284
174
174
  ultralytics/utils/autobatch.py,sha256=ygZ3f2ByIkcujB89ENcTnGWWnAQw5Pbg6nBuShg-5t4,3863
175
175
  ultralytics/utils/benchmarks.py,sha256=l9SHatEr4itinf9R77bunBpNqrTI2S_qaPB3K2oAYRg,23470
176
- ultralytics/utils/checks.py,sha256=UDrcHiTMjSHSyUZflTRGuyYRj0uz9-RQ-xfDq_lsXZo,27971
176
+ ultralytics/utils/checks.py,sha256=kwHcB_o8-bieQV2NNNZe2d37QSXyBdIN6XaMlARTUEE,28077
177
177
  ultralytics/utils/dist.py,sha256=3HeNbY2gp7vYhcvVhsrvTrQXpQmgT8tpmnzApf3eQRA,2267
178
178
  ultralytics/utils/downloads.py,sha256=Rx32imHkKyVltEDMiCtCT2N5aA9Cud_0PyIUoTh4ru0,21496
179
179
  ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,816
180
180
  ultralytics/utils/files.py,sha256=TVfY0Wi5IsUc4YdsDzC0dAg-jAP5exYvwqB3VmXhDLY,6761
181
- ultralytics/utils/instance.py,sha256=fPClvPPtTk8VeXWiRv90DrFk1j1lTUKdYJtpZKUDDtA,15575
181
+ ultralytics/utils/instance.py,sha256=5daM5nkxBv9hr5QzyII8zmuFj24hHuNtcr4EMCHAtpY,15654
182
182
  ultralytics/utils/loss.py,sha256=ejXnPEIAzNEoNz2UjW0_fcdeUs9Hy-jPzUrJ3FiIIwE,32717
183
183
  ultralytics/utils/metrics.py,sha256=XPD-xP0fchR8KgCuTcihV2-n0EK1cWi3-53BWN_pLuA,53518
184
184
  ultralytics/utils/ops.py,sha256=wZCWx7dm5GJNIJHyZaFJRetGcQ7prdv-anplqq9figQ,33309
@@ -199,9 +199,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyz
199
199
  ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
200
200
  ultralytics/utils/callbacks/tensorboard.py,sha256=Z1veCVcn9THPhdplWuIzwlsW2yF7y-On9IZIk3khM0Y,4135
201
201
  ultralytics/utils/callbacks/wb.py,sha256=woCQVuZzqtM5KnwxIibcfM3sFBYojeMPnv11jrRaIQA,6674
202
- ultralytics-8.2.6.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
203
- ultralytics-8.2.6.dist-info/METADATA,sha256=p3vEITZwG8diV7xRVxvELADuJmwzMLCa06dOhE4XSJQ,40595
204
- ultralytics-8.2.6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
205
- ultralytics-8.2.6.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
206
- ultralytics-8.2.6.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
207
- ultralytics-8.2.6.dist-info/RECORD,,
202
+ ultralytics-8.2.8.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
203
+ ultralytics-8.2.8.dist-info/METADATA,sha256=0_6ZyqamPH8rNnzU4V6g9fCmvyreK9r_QX8OuLfXlTw,40701
204
+ ultralytics-8.2.8.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
205
+ ultralytics-8.2.8.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
206
+ ultralytics-8.2.8.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
207
+ ultralytics-8.2.8.dist-info/RECORD,,