ultralytics 8.0.160__tar.gz → 8.0.161__tar.gz
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-8.0.160/ultralytics.egg-info → ultralytics-8.0.161}/PKG-INFO +1 -1
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/__init__.py +1 -1
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/data/dataset.py +4 -4
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/data/utils.py +16 -7
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/engine/trainer.py +4 -1
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/callbacks/tensorboard.py +3 -3
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/downloads.py +8 -6
- {ultralytics-8.0.160 → ultralytics-8.0.161/ultralytics.egg-info}/PKG-INFO +1 -1
- {ultralytics-8.0.160 → ultralytics-8.0.161}/CONTRIBUTING.md +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/LICENSE +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/MANIFEST.in +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/README.md +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/README.zh-CN.md +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/requirements.txt +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/setup.cfg +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/setup.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/tests/test_cli.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/tests/test_engine.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/tests/test_python.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/DOTAv2.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/default.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/data/augment.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/data/base.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/data/build.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/data/converter.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/data/loaders.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/engine/exporter.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/engine/model.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/engine/predictor.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/engine/results.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/hub/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/hub/session.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/fastsam/prompt.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/classify/train.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/detect/val.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/model.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/nn/autobackend.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/nn/modules/block.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/nn/modules/head.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/nn/tasks.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/benchmarks.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/callbacks/hub.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/checks.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/dist.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/metrics.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/plotting.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/torch_utils.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/yolo/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/yolo/cfg/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/yolo/data/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/yolo/engine/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/yolo/utils/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics/yolo/v8/__init__.py +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics.egg-info/SOURCES.txt +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics.egg-info/requires.txt +0 -0
- {ultralytics-8.0.160 → ultralytics-8.0.161}/ultralytics.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.0.
|
|
3
|
+
Version: 8.0.161
|
|
4
4
|
Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
|
5
5
|
Home-page: https://github.com/ultralytics/ultralytics
|
|
6
6
|
Author: Ultralytics
|
|
@@ -17,7 +17,7 @@ from .base import BaseDataset
|
|
|
17
17
|
from .utils import HELP_URL, LOGGER, get_hash, img2label_paths, verify_image, verify_image_label
|
|
18
18
|
|
|
19
19
|
# Ultralytics dataset *.cache version, >= 1.0.0 for YOLOv8
|
|
20
|
-
DATASET_CACHE_VERSION = '1.0.
|
|
20
|
+
DATASET_CACHE_VERSION = '1.0.3'
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
class YOLODataset(BaseDataset):
|
|
@@ -279,11 +279,11 @@ class ClassificationDataset(torchvision.datasets.ImageFolder):
|
|
|
279
279
|
# Run scan if *.cache retrieval failed
|
|
280
280
|
nf, nc, msgs, samples, x = 0, 0, [], [], {}
|
|
281
281
|
with ThreadPool(NUM_THREADS) as pool:
|
|
282
|
-
results = pool.imap(func=verify_image, iterable=zip(
|
|
282
|
+
results = pool.imap(func=verify_image, iterable=zip(self.samples, repeat(self.prefix)))
|
|
283
283
|
pbar = tqdm(results, desc=desc, total=len(self.samples), bar_format=TQDM_BAR_FORMAT)
|
|
284
|
-
for
|
|
284
|
+
for sample, nf_f, nc_f, msg in pbar:
|
|
285
285
|
if nf_f:
|
|
286
|
-
samples.append(
|
|
286
|
+
samples.append(sample)
|
|
287
287
|
if msg:
|
|
288
288
|
msgs.append(msg)
|
|
289
289
|
nf += nf_f
|
|
@@ -59,7 +59,7 @@ def exif_size(img: Image.Image):
|
|
|
59
59
|
|
|
60
60
|
def verify_image(args):
|
|
61
61
|
"""Verify one image."""
|
|
62
|
-
im_file, prefix = args
|
|
62
|
+
(im_file, cls), prefix = args
|
|
63
63
|
# Number (found, corrupt), message
|
|
64
64
|
nf, nc, msg = 0, 0, ''
|
|
65
65
|
try:
|
|
@@ -79,7 +79,7 @@ def verify_image(args):
|
|
|
79
79
|
except Exception as e:
|
|
80
80
|
nc = 1
|
|
81
81
|
msg = f'{prefix}WARNING ⚠️ {im_file}: ignoring corrupt image/label: {e}'
|
|
82
|
-
return im_file, nf, nc, msg
|
|
82
|
+
return (im_file, cls), nf, nc, msg
|
|
83
83
|
|
|
84
84
|
|
|
85
85
|
def verify_image_label(args):
|
|
@@ -321,7 +321,7 @@ def check_cls_dataset(dataset: str, split=''):
|
|
|
321
321
|
dataset = Path(dataset)
|
|
322
322
|
data_dir = (dataset if dataset.is_dir() else (DATASETS_DIR / dataset)).resolve()
|
|
323
323
|
if not data_dir.is_dir():
|
|
324
|
-
LOGGER.
|
|
324
|
+
LOGGER.warning(f'\nDataset not found ⚠️, missing path {data_dir}, attempting download...')
|
|
325
325
|
t = time.time()
|
|
326
326
|
if str(dataset) == 'imagenet':
|
|
327
327
|
subprocess.run(f"bash {ROOT / 'data/scripts/get_imagenet.sh'}", shell=True, check=True)
|
|
@@ -335,9 +335,9 @@ def check_cls_dataset(dataset: str, split=''):
|
|
|
335
335
|
data_dir / 'validation').exists() else None # data/test or data/val
|
|
336
336
|
test_set = data_dir / 'test' if (data_dir / 'test').exists() else None # data/val or data/test
|
|
337
337
|
if split == 'val' and not val_set:
|
|
338
|
-
LOGGER.
|
|
338
|
+
LOGGER.warning("WARNING ⚠️ Dataset 'split=val' not found, using 'split=test' instead.")
|
|
339
339
|
elif split == 'test' and not test_set:
|
|
340
|
-
LOGGER.
|
|
340
|
+
LOGGER.warning("WARNING ⚠️ Dataset 'split=test' not found, using 'split=val' instead.")
|
|
341
341
|
|
|
342
342
|
nc = len([x for x in (data_dir / 'train').glob('*') if x.is_dir()]) # number of classes
|
|
343
343
|
names = [x.name for x in (data_dir / 'train').iterdir() if x.is_dir()] # class names list
|
|
@@ -345,13 +345,22 @@ def check_cls_dataset(dataset: str, split=''):
|
|
|
345
345
|
|
|
346
346
|
# Print to console
|
|
347
347
|
for k, v in {'train': train_set, 'val': val_set, 'test': test_set}.items():
|
|
348
|
+
prefix = f'{colorstr(k)} {v}...'
|
|
348
349
|
if v is None:
|
|
349
|
-
LOGGER.info(
|
|
350
|
+
LOGGER.info(prefix)
|
|
350
351
|
else:
|
|
351
352
|
files = [path for path in v.rglob('*.*') if path.suffix[1:].lower() in IMG_FORMATS]
|
|
352
353
|
nf = len(files) # number of files
|
|
353
354
|
nd = len({file.parent for file in files}) # number of directories
|
|
354
|
-
|
|
355
|
+
if nf == 0:
|
|
356
|
+
if k == 'train':
|
|
357
|
+
raise FileNotFoundError(emojis(f"{dataset} '{k}:' no training images found ❌ "))
|
|
358
|
+
else:
|
|
359
|
+
LOGGER.warning(f'{prefix} found {nf} images in {nd} classes: WARNING ⚠️ no images found')
|
|
360
|
+
elif nd != nc:
|
|
361
|
+
LOGGER.warning(f'{prefix} found {nf} images in {nd} classes: ERROR ❌️ requires {nc} classes, not {nd}')
|
|
362
|
+
else:
|
|
363
|
+
LOGGER.info(f'{prefix} found {nf} images in {nd} classes ✅ ')
|
|
355
364
|
|
|
356
365
|
return {'train': train_set, 'val': val_set or test_set, 'test': test_set or val_set, 'nc': nc, 'names': names}
|
|
357
366
|
|
|
@@ -10,6 +10,7 @@ import math
|
|
|
10
10
|
import os
|
|
11
11
|
import subprocess
|
|
12
12
|
import time
|
|
13
|
+
import warnings
|
|
13
14
|
from copy import deepcopy
|
|
14
15
|
from datetime import datetime, timedelta
|
|
15
16
|
from pathlib import Path
|
|
@@ -378,7 +379,9 @@ class BaseTrainer:
|
|
|
378
379
|
|
|
379
380
|
self.lr = {f'lr/pg{ir}': x['lr'] for ir, x in enumerate(self.optimizer.param_groups)} # for loggers
|
|
380
381
|
|
|
381
|
-
|
|
382
|
+
with warnings.catch_warnings():
|
|
383
|
+
warnings.simplefilter('ignore') # suppress 'Detected lr_scheduler.step() before optimizer.step()'
|
|
384
|
+
self.scheduler.step()
|
|
382
385
|
self.run_callbacks('on_train_epoch_end')
|
|
383
386
|
|
|
384
387
|
if RANK in (-1, 0):
|
|
@@ -32,9 +32,9 @@ def _log_tensorboard_graph(trainer):
|
|
|
32
32
|
imgsz = trainer.args.imgsz
|
|
33
33
|
imgsz = (imgsz, imgsz) if isinstance(imgsz, int) else imgsz
|
|
34
34
|
p = next(trainer.model.parameters()) # for device, type
|
|
35
|
-
im = torch.zeros((1, 3, *imgsz), device=p.device, dtype=p.dtype) # input (
|
|
36
|
-
with warnings.catch_warnings(
|
|
37
|
-
warnings.simplefilter('ignore') # suppress jit trace warning
|
|
35
|
+
im = torch.zeros((1, 3, *imgsz), device=p.device, dtype=p.dtype) # input image (must be zeros, not empty)
|
|
36
|
+
with warnings.catch_warnings():
|
|
37
|
+
warnings.simplefilter('ignore', category=UserWarning) # suppress jit trace warning
|
|
38
38
|
WRITER.add_graph(torch.jit.trace(de_parallel(trainer.model), im, strict=False), [])
|
|
39
39
|
except Exception as e:
|
|
40
40
|
LOGGER.warning(f'WARNING ⚠️ TensorBoard graph visualization failure {e}')
|
|
@@ -39,16 +39,17 @@ def is_url(url, check=True):
|
|
|
39
39
|
return False
|
|
40
40
|
|
|
41
41
|
|
|
42
|
-
def delete_dsstore(path):
|
|
42
|
+
def delete_dsstore(path, files_to_delete=('.DS_Store', '__MACOSX')):
|
|
43
43
|
"""
|
|
44
44
|
Deletes all ".DS_store" files under a specified directory.
|
|
45
45
|
|
|
46
46
|
Args:
|
|
47
47
|
path (str, optional): The directory path where the ".DS_store" files should be deleted.
|
|
48
|
+
files_to_delete (tuple): The files to be deleted.
|
|
48
49
|
|
|
49
50
|
Example:
|
|
50
51
|
```python
|
|
51
|
-
from ultralytics.
|
|
52
|
+
from ultralytics.utils.downloads import delete_dsstore
|
|
52
53
|
|
|
53
54
|
delete_dsstore('path/to/dir')
|
|
54
55
|
```
|
|
@@ -58,10 +59,11 @@ def delete_dsstore(path):
|
|
|
58
59
|
are hidden system files and can cause issues when transferring files between different operating systems.
|
|
59
60
|
"""
|
|
60
61
|
# Delete Apple .DS_store files
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
f
|
|
62
|
+
for file in files_to_delete:
|
|
63
|
+
matches = list(Path(path).rglob(file))
|
|
64
|
+
LOGGER.info(f'Deleting {file} files: {matches}')
|
|
65
|
+
for f in matches:
|
|
66
|
+
f.unlink()
|
|
65
67
|
|
|
66
68
|
|
|
67
69
|
def zip_directory(directory, compress=True, exclude=('.DS_Store', '__MACOSX'), progress=True):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.0.
|
|
3
|
+
Version: 8.0.161
|
|
4
4
|
Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
|
5
5
|
Home-page: https://github.com/ultralytics/ultralytics
|
|
6
6
|
Author: Ultralytics
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|