ultralytics 8.2.79__py3-none-any.whl → 8.2.81__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 +1 -1
- ultralytics/engine/model.py +6 -5
- ultralytics/engine/results.py +2 -2
- ultralytics/hub/session.py +29 -17
- ultralytics/utils/__init__.py +10 -7
- ultralytics/utils/metrics.py +7 -7
- {ultralytics-8.2.79.dist-info → ultralytics-8.2.81.dist-info}/METADATA +2 -2
- {ultralytics-8.2.79.dist-info → ultralytics-8.2.81.dist-info}/RECORD +12 -12
- {ultralytics-8.2.79.dist-info → ultralytics-8.2.81.dist-info}/WHEEL +1 -1
- {ultralytics-8.2.79.dist-info → ultralytics-8.2.81.dist-info}/LICENSE +0 -0
- {ultralytics-8.2.79.dist-info → ultralytics-8.2.81.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.2.79.dist-info → ultralytics-8.2.81.dist-info}/top_level.txt +0 -0
ultralytics/__init__.py
CHANGED
ultralytics/engine/model.py
CHANGED
|
@@ -6,6 +6,7 @@ from typing import List, Union
|
|
|
6
6
|
|
|
7
7
|
import numpy as np
|
|
8
8
|
import torch
|
|
9
|
+
from PIL import Image
|
|
9
10
|
|
|
10
11
|
from ultralytics.cfg import TASK2DATA, get_cfg, get_save_dir
|
|
11
12
|
from ultralytics.engine.results import Results
|
|
@@ -143,7 +144,7 @@ class Model(nn.Module):
|
|
|
143
144
|
|
|
144
145
|
def __call__(
|
|
145
146
|
self,
|
|
146
|
-
source: Union[str, Path, int, list, tuple, np.ndarray, torch.Tensor] = None,
|
|
147
|
+
source: Union[str, Path, int, Image.Image, list, tuple, np.ndarray, torch.Tensor] = None,
|
|
147
148
|
stream: bool = False,
|
|
148
149
|
**kwargs,
|
|
149
150
|
) -> list:
|
|
@@ -504,7 +505,7 @@ class Model(nn.Module):
|
|
|
504
505
|
|
|
505
506
|
def predict(
|
|
506
507
|
self,
|
|
507
|
-
source: Union[str, Path, int, list, tuple, np.ndarray, torch.Tensor] = None,
|
|
508
|
+
source: Union[str, Path, int, Image.Image, list, tuple, np.ndarray, torch.Tensor] = None,
|
|
508
509
|
stream: bool = False,
|
|
509
510
|
predictor=None,
|
|
510
511
|
**kwargs,
|
|
@@ -517,7 +518,7 @@ class Model(nn.Module):
|
|
|
517
518
|
types of image sources and can operate in a streaming mode.
|
|
518
519
|
|
|
519
520
|
Args:
|
|
520
|
-
source (str | Path | int |
|
|
521
|
+
source (str | Path | int | PIL.Image | np.ndarray | torch.Tensor | List | Tuple): The source
|
|
521
522
|
of the image(s) to make predictions on. Accepts various types including file paths, URLs, PIL
|
|
522
523
|
images, numpy arrays, and torch tensors.
|
|
523
524
|
stream (bool): If True, treats the input source as a continuous stream for predictions.
|
|
@@ -900,7 +901,7 @@ class Model(nn.Module):
|
|
|
900
901
|
initialized, it sets it up before retrieving the names.
|
|
901
902
|
|
|
902
903
|
Returns:
|
|
903
|
-
(
|
|
904
|
+
(Dict[int, str]): A dict of class names associated with the model.
|
|
904
905
|
|
|
905
906
|
Raises:
|
|
906
907
|
AttributeError: If the model or predictor does not have a 'names' attribute.
|
|
@@ -908,7 +909,7 @@ class Model(nn.Module):
|
|
|
908
909
|
Examples:
|
|
909
910
|
>>> model = YOLO('yolov8n.pt')
|
|
910
911
|
>>> print(model.names)
|
|
911
|
-
|
|
912
|
+
{0: 'person', 1: 'bicycle', 2: 'car', ...}
|
|
912
913
|
"""
|
|
913
914
|
from ultralytics.nn.autobackend import check_class_names
|
|
914
915
|
|
ultralytics/engine/results.py
CHANGED
|
@@ -992,8 +992,8 @@ class Boxes(BaseTensor):
|
|
|
992
992
|
Convert bounding boxes from [x1, y1, x2, y2] format to [x, y, width, height] format.
|
|
993
993
|
|
|
994
994
|
Returns:
|
|
995
|
-
(torch.Tensor | numpy.ndarray): Boxes in [
|
|
996
|
-
the
|
|
995
|
+
(torch.Tensor | numpy.ndarray): Boxes in [x_center, y_center, width, height] format, where x_center, y_center are the coordinates of
|
|
996
|
+
the center point of the bounding box, width, height are the dimensions of the bounding box and the
|
|
997
997
|
shape of the returned tensor is (N, 4), where N is the number of boxes.
|
|
998
998
|
|
|
999
999
|
Examples:
|
ultralytics/hub/session.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
2
2
|
|
|
3
|
+
import shutil
|
|
3
4
|
import threading
|
|
4
5
|
import time
|
|
5
6
|
from http import HTTPStatus
|
|
@@ -344,23 +345,34 @@ class HUBTrainingSession:
|
|
|
344
345
|
map (float): Mean average precision of the model.
|
|
345
346
|
final (bool): Indicates if the model is the final model after training.
|
|
346
347
|
"""
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
348
|
+
weights = Path(weights)
|
|
349
|
+
if not weights.is_file():
|
|
350
|
+
last = weights.with_name("last" + weights.suffix)
|
|
351
|
+
if final and last.is_file():
|
|
352
|
+
LOGGER.warning(
|
|
353
|
+
f"{PREFIX} ARNING ⚠️ Model 'best.pt' not found, copying 'last.pt' to 'best.pt' and uploading. "
|
|
354
|
+
"This often happens when resuming training in transient environments like Google Colab. "
|
|
355
|
+
"For more reliable training, consider using Ultralytics HUB Cloud. "
|
|
356
|
+
"Learn more at https://docs.ultralytics.com/hub/cloud-training/."
|
|
357
|
+
)
|
|
358
|
+
shutil.copy(last, weights) # copy last.pt to best.pt
|
|
359
|
+
else:
|
|
360
|
+
LOGGER.warning(f"{PREFIX} WARNING ⚠️ Model upload issue. Missing model {weights}.")
|
|
361
|
+
return
|
|
362
|
+
|
|
363
|
+
self.request_queue(
|
|
364
|
+
self.model.upload_model,
|
|
365
|
+
epoch=epoch,
|
|
366
|
+
weights=str(weights),
|
|
367
|
+
is_best=is_best,
|
|
368
|
+
map=map,
|
|
369
|
+
final=final,
|
|
370
|
+
retry=10,
|
|
371
|
+
timeout=3600,
|
|
372
|
+
thread=not final,
|
|
373
|
+
progress_total=weights.stat().st_size if final else None, # only show progress if final
|
|
374
|
+
stream_response=True,
|
|
375
|
+
)
|
|
364
376
|
|
|
365
377
|
@staticmethod
|
|
366
378
|
def _show_upload_progress(content_length: int, response: requests.Response) -> None:
|
ultralytics/utils/__init__.py
CHANGED
|
@@ -219,16 +219,19 @@ def plt_settings(rcparams=None, backend="Agg"):
|
|
|
219
219
|
def wrapper(*args, **kwargs):
|
|
220
220
|
"""Sets rc parameters and backend, calls the original function, and restores the settings."""
|
|
221
221
|
original_backend = plt.get_backend()
|
|
222
|
-
|
|
222
|
+
switch = backend.lower() != original_backend.lower()
|
|
223
|
+
if switch:
|
|
223
224
|
plt.close("all") # auto-close()ing of figures upon backend switching is deprecated since 3.8
|
|
224
225
|
plt.switch_backend(backend)
|
|
225
226
|
|
|
226
|
-
with
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
227
|
+
# Plot with backend and always revert to original backend
|
|
228
|
+
try:
|
|
229
|
+
with plt.rc_context(rcparams):
|
|
230
|
+
result = func(*args, **kwargs)
|
|
231
|
+
finally:
|
|
232
|
+
if switch:
|
|
233
|
+
plt.close("all")
|
|
234
|
+
plt.switch_backend(original_backend)
|
|
232
235
|
return result
|
|
233
236
|
|
|
234
237
|
return wrapper
|
ultralytics/utils/metrics.py
CHANGED
|
@@ -445,7 +445,7 @@ def smooth(y, f=0.05):
|
|
|
445
445
|
|
|
446
446
|
|
|
447
447
|
@plt_settings()
|
|
448
|
-
def plot_pr_curve(px, py, ap, save_dir=Path("pr_curve.png"), names=
|
|
448
|
+
def plot_pr_curve(px, py, ap, save_dir=Path("pr_curve.png"), names={}, on_plot=None):
|
|
449
449
|
"""Plots a precision-recall curve."""
|
|
450
450
|
fig, ax = plt.subplots(1, 1, figsize=(9, 6), tight_layout=True)
|
|
451
451
|
py = np.stack(py, axis=1)
|
|
@@ -470,7 +470,7 @@ def plot_pr_curve(px, py, ap, save_dir=Path("pr_curve.png"), names=(), on_plot=N
|
|
|
470
470
|
|
|
471
471
|
|
|
472
472
|
@plt_settings()
|
|
473
|
-
def plot_mc_curve(px, py, save_dir=Path("mc_curve.png"), names=
|
|
473
|
+
def plot_mc_curve(px, py, save_dir=Path("mc_curve.png"), names={}, xlabel="Confidence", ylabel="Metric", on_plot=None):
|
|
474
474
|
"""Plots a metric-confidence curve."""
|
|
475
475
|
fig, ax = plt.subplots(1, 1, figsize=(9, 6), tight_layout=True)
|
|
476
476
|
|
|
@@ -528,7 +528,7 @@ def compute_ap(recall, precision):
|
|
|
528
528
|
|
|
529
529
|
|
|
530
530
|
def ap_per_class(
|
|
531
|
-
tp, conf, pred_cls, target_cls, plot=False, on_plot=None, save_dir=Path(), names=
|
|
531
|
+
tp, conf, pred_cls, target_cls, plot=False, on_plot=None, save_dir=Path(), names={}, eps=1e-16, prefix=""
|
|
532
532
|
):
|
|
533
533
|
"""
|
|
534
534
|
Computes the average precision per class for object detection evaluation.
|
|
@@ -541,7 +541,7 @@ def ap_per_class(
|
|
|
541
541
|
plot (bool, optional): Whether to plot PR curves or not. Defaults to False.
|
|
542
542
|
on_plot (func, optional): A callback to pass plots path and data when they are rendered. Defaults to None.
|
|
543
543
|
save_dir (Path, optional): Directory to save the PR curves. Defaults to an empty path.
|
|
544
|
-
names (
|
|
544
|
+
names (dict, optional): Dict of class names to plot PR curves. Defaults to an empty tuple.
|
|
545
545
|
eps (float, optional): A small value to avoid division by zero. Defaults to 1e-16.
|
|
546
546
|
prefix (str, optional): A prefix string for saving the plot files. Defaults to an empty string.
|
|
547
547
|
|
|
@@ -799,13 +799,13 @@ class DetMetrics(SimpleClass):
|
|
|
799
799
|
save_dir (Path): A path to the directory where the output plots will be saved. Defaults to current directory.
|
|
800
800
|
plot (bool): A flag that indicates whether to plot precision-recall curves for each class. Defaults to False.
|
|
801
801
|
on_plot (func): An optional callback to pass plots path and data when they are rendered. Defaults to None.
|
|
802
|
-
names (
|
|
802
|
+
names (dict of str): A dict of strings that represents the names of the classes. Defaults to an empty tuple.
|
|
803
803
|
|
|
804
804
|
Attributes:
|
|
805
805
|
save_dir (Path): A path to the directory where the output plots will be saved.
|
|
806
806
|
plot (bool): A flag that indicates whether to plot the precision-recall curves for each class.
|
|
807
807
|
on_plot (func): An optional callback to pass plots path and data when they are rendered.
|
|
808
|
-
names (
|
|
808
|
+
names (dict of str): A dict of strings that represents the names of the classes.
|
|
809
809
|
box (Metric): An instance of the Metric class for storing the results of the detection metrics.
|
|
810
810
|
speed (dict): A dictionary for storing the execution time of different parts of the detection process.
|
|
811
811
|
|
|
@@ -822,7 +822,7 @@ class DetMetrics(SimpleClass):
|
|
|
822
822
|
curves_results: TODO
|
|
823
823
|
"""
|
|
824
824
|
|
|
825
|
-
def __init__(self, save_dir=Path("."), plot=False, on_plot=None, names=
|
|
825
|
+
def __init__(self, save_dir=Path("."), plot=False, on_plot=None, names={}) -> None:
|
|
826
826
|
"""Initialize a DetMetrics instance with a save directory, plot flag, callback function, and class names."""
|
|
827
827
|
self.save_dir = save_dir
|
|
828
828
|
self.plot = plot
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.2.
|
|
3
|
+
Version: 8.2.81
|
|
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
|
|
@@ -88,7 +88,7 @@ Requires-Dist: dvclive>=2.12.0; extra == "logging"
|
|
|
88
88
|
<img width="100%" src="https://raw.githubusercontent.com/ultralytics/assets/main/yolov8/banner-yolov8.png" alt="YOLO Vision banner"></a>
|
|
89
89
|
</p>
|
|
90
90
|
|
|
91
|
-
[中文](https://docs.ultralytics.com/zh/) | [한국어](https://docs.ultralytics.com/ko/) | [日本語](https://docs.ultralytics.com/ja/) | [Русский](https://docs.ultralytics.com/ru/) | [Deutsch](https://docs.ultralytics.com/de/) | [Français](https://docs.ultralytics.com/fr/) | [Español](https://docs.ultralytics.com/es/) | [Português](https://docs.ultralytics.com/pt/) | [Türkçe](https://docs.ultralytics.com/tr/) | [Tiếng Việt](https://docs.ultralytics.com/vi/) | [
|
|
91
|
+
[中文](https://docs.ultralytics.com/zh/) | [한국어](https://docs.ultralytics.com/ko/) | [日本語](https://docs.ultralytics.com/ja/) | [Русский](https://docs.ultralytics.com/ru/) | [Deutsch](https://docs.ultralytics.com/de/) | [Français](https://docs.ultralytics.com/fr/) | [Español](https://docs.ultralytics.com/es/) | [Português](https://docs.ultralytics.com/pt/) | [Türkçe](https://docs.ultralytics.com/tr/) | [Tiếng Việt](https://docs.ultralytics.com/vi/) | [العربية](https://docs.ultralytics.com/ar/) <br>
|
|
92
92
|
|
|
93
93
|
<div>
|
|
94
94
|
<a href="https://github.com/ultralytics/ultralytics/actions/workflows/ci.yaml"><img src="https://github.com/ultralytics/ultralytics/actions/workflows/ci.yaml/badge.svg" alt="Ultralytics CI"></a>
|
|
@@ -8,7 +8,7 @@ tests/test_exports.py,sha256=Uezf3OatpPHlo5qoPw-2kqkZxuMCF9L4XF2riD4vmII,8225
|
|
|
8
8
|
tests/test_integrations.py,sha256=xglcfMPjfVh346PV8WTpk6tBxraCXEFJEQyyJMr5tyU,6064
|
|
9
9
|
tests/test_python.py,sha256=SxBf5GNu7vXQP8QxTlSOzCzcQNN0PLA6EX8M33VDHsU,21927
|
|
10
10
|
tests/test_solutions.py,sha256=EACnPXbeJe2aVTOKfqMk5jclKKCWCVgFEzjpR6y7Sh8,3304
|
|
11
|
-
ultralytics/__init__.py,sha256
|
|
11
|
+
ultralytics/__init__.py,sha256=-jXQ4Rbvydd1EE5ShFfSxdZEo29lIC8dYZDGNcD25UQ,694
|
|
12
12
|
ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
|
|
13
13
|
ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
|
|
14
14
|
ultralytics/cfg/__init__.py,sha256=oLjAiJXnxs1bsAB-nojG6evr0w1Ns9Ry5Js23ueiX9Y,33029
|
|
@@ -99,15 +99,15 @@ ultralytics/data/explorer/gui/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2
|
|
|
99
99
|
ultralytics/data/explorer/gui/dash.py,sha256=vZ476NaUH4FKU08rAJ1K9WNyKtg0soMyJJxqg176yWc,10498
|
|
100
100
|
ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
|
|
101
101
|
ultralytics/engine/exporter.py,sha256=EM35MOPWbIKE2ShJsPzdrEmrjzwZSp9gW-rO8GEFal0,58905
|
|
102
|
-
ultralytics/engine/model.py,sha256=
|
|
102
|
+
ultralytics/engine/model.py,sha256=SunF9efCM9A5V6ykOaB5pSPmHz45mf5MNkIxr-Nlmc0,52191
|
|
103
103
|
ultralytics/engine/predictor.py,sha256=W58kDCFH2AfoFzpGbos3k8zUEVsLunBuM8sc2B64rPY,17449
|
|
104
|
-
ultralytics/engine/results.py,sha256=
|
|
104
|
+
ultralytics/engine/results.py,sha256=dyZcvSat_Vg6RooYl44fELjewqTsJ1-u65HPDe6oUxE,70537
|
|
105
105
|
ultralytics/engine/trainer.py,sha256=KJ0FohkKsAOgkrU-Fawh1QwBuhalsuvf8NNEo5dkLSc,35591
|
|
106
106
|
ultralytics/engine/tuner.py,sha256=iZrgMmXSDpfuDu4bdFRflmAsscys2-8W8qAGxSyOVJE,11844
|
|
107
107
|
ultralytics/engine/validator.py,sha256=R0qND144EHTOedGDoqI60MxY9RigbynjvGrRYUjjPsU,14682
|
|
108
108
|
ultralytics/hub/__init__.py,sha256=93bqI8x8-MfDYdKkQVduuocUiQj3WGnk1nIk0li08zA,5663
|
|
109
109
|
ultralytics/hub/auth.py,sha256=FID58NE6fh7Op_B45QOpWBw1qoBN0ponL16uvyb2dZ8,5399
|
|
110
|
-
ultralytics/hub/session.py,sha256=
|
|
110
|
+
ultralytics/hub/session.py,sha256=AZAhGkBs7e0K-QyDoMUOgo0ih6PK28XLK-S9ELBHY-Y,16865
|
|
111
111
|
ultralytics/hub/utils.py,sha256=tXfM3QbXBcf4Y6StgHI1pktT4OM7Ic9eF3xiBFHGlhY,9721
|
|
112
112
|
ultralytics/hub/google/__init__.py,sha256=qyvvpGP-4NAtrn7GLqfqxP_aWuRP1T0OvJYafWKvL2Q,7512
|
|
113
113
|
ultralytics/models/__init__.py,sha256=TT9iLCL_n9Y80dcUq0Fo-p-GRZCSU2vrWXM3CoMwqqE,265
|
|
@@ -196,7 +196,7 @@ ultralytics/trackers/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7J
|
|
|
196
196
|
ultralytics/trackers/utils/gmc.py,sha256=ir7yjVYt1pyAMttOLRN8AAjvtn53fdnjXlf-sLA_5HQ,14557
|
|
197
197
|
ultralytics/trackers/utils/kalman_filter.py,sha256=lxVWdR5NLXhAGcxd2hsiVsYsK3z3jhxZ4NbE-rMUgtE,21349
|
|
198
198
|
ultralytics/trackers/utils/matching.py,sha256=hFul0NXkkpiTwtMpPm9lrKfLP-jPz6_u95W7PFlYUd4,7166
|
|
199
|
-
ultralytics/utils/__init__.py,sha256=
|
|
199
|
+
ultralytics/utils/__init__.py,sha256=H6lUGhD05pA75W59dmkKxc4pKF97OeoKPOCy86FzUIw,39065
|
|
200
200
|
ultralytics/utils/autobatch.py,sha256=POJb9f8dioI7lPGnCc7bdxt0ncftXZa0bvOkip-XoWk,3969
|
|
201
201
|
ultralytics/utils/benchmarks.py,sha256=6tdNcBLATllWpmAMUC6TW7DiCx1VKHhnQN4vkoqN3sE,23866
|
|
202
202
|
ultralytics/utils/checks.py,sha256=hBkhOinWRzhpA5SbY1v-wCMdFeOemORRlmKBXgwoHYo,28498
|
|
@@ -206,7 +206,7 @@ ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,8
|
|
|
206
206
|
ultralytics/utils/files.py,sha256=GTaggVhM22UM9I__jtuTcBV2oMrIKMFh_tansEFrT6E,8253
|
|
207
207
|
ultralytics/utils/instance.py,sha256=5daM5nkxBv9hr5QzyII8zmuFj24hHuNtcr4EMCHAtpY,15654
|
|
208
208
|
ultralytics/utils/loss.py,sha256=mDHGmF-gjggAUVhI1dkCm7TtfZHCwz25XKm4M2xJKLs,33916
|
|
209
|
-
ultralytics/utils/metrics.py,sha256=
|
|
209
|
+
ultralytics/utils/metrics.py,sha256=mZC03NMLD2O1U9p1QQ4ODn2JDh8k2COnGNMHr0v7v6o,53780
|
|
210
210
|
ultralytics/utils/ops.py,sha256=hLXY4Nk-dckRvUwT5Jwmc_n5abQimYLuAunFZfuSpy8,32713
|
|
211
211
|
ultralytics/utils/patches.py,sha256=Oo3DkP7MbXnNGvPfoFSocAkVvaPh9kwMT_9RQUfjVhI,3594
|
|
212
212
|
ultralytics/utils/plotting.py,sha256=cHYRcpnK0UGjY55UXADjoQ7ngMNDmge2u-9JElUxAkg,55763
|
|
@@ -225,9 +225,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyz
|
|
|
225
225
|
ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
|
|
226
226
|
ultralytics/utils/callbacks/tensorboard.py,sha256=QEgOVhUqY9akOs5TJIwz1Rvn6l32xWLpOxlwEyWF0B8,4136
|
|
227
227
|
ultralytics/utils/callbacks/wb.py,sha256=9-fjQIdLjr3b73DTE3rHO171KvbH1VweJ-bmbv-rqTw,6747
|
|
228
|
-
ultralytics-8.2.
|
|
229
|
-
ultralytics-8.2.
|
|
230
|
-
ultralytics-8.2.
|
|
231
|
-
ultralytics-8.2.
|
|
232
|
-
ultralytics-8.2.
|
|
233
|
-
ultralytics-8.2.
|
|
228
|
+
ultralytics-8.2.81.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
|
229
|
+
ultralytics-8.2.81.dist-info/METADATA,sha256=LLWZkXC9FOHbB6nLxR9RXKz7NXiXyEE8zHxNStRBCws,41264
|
|
230
|
+
ultralytics-8.2.81.dist-info/WHEEL,sha256=Mdi9PDNwEZptOjTlUcAth7XJDFtKrHYaQMPulZeBCiQ,91
|
|
231
|
+
ultralytics-8.2.81.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
|
|
232
|
+
ultralytics-8.2.81.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
|
|
233
|
+
ultralytics-8.2.81.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|