ultralytics 8.3.207__tar.gz → 8.3.209__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.
- {ultralytics-8.3.207 → ultralytics-8.3.209}/PKG-INFO +1 -1
- {ultralytics-8.3.207 → ultralytics-8.3.209}/tests/test_cuda.py +1 -1
- {ultralytics-8.3.207 → ultralytics-8.3.209}/tests/test_exports.py +1 -1
- {ultralytics-8.3.207 → ultralytics-8.3.209}/tests/test_python.py +1 -1
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/__init__.py +1 -1
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/engine/exporter.py +14 -11
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/engine/tuner.py +1 -1
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/nn/autobackend.py +1 -1
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/nn/modules/head.py +10 -4
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/benchmarks.py +1 -1
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/checks.py +24 -11
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/downloads.py +1 -1
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics.egg-info/PKG-INFO +1 -1
- {ultralytics-8.3.207 → ultralytics-8.3.209}/LICENSE +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/README.md +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/pyproject.toml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/setup.cfg +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/tests/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/tests/conftest.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/tests/test_cli.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/tests/test_engine.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/tests/test_integrations.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/tests/test_solutions.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/construction-ppe.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/dota8.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/lvis.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/signature.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/default.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/data/augment.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/data/base.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/data/build.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/data/converter.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/data/dataset.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/data/loaders.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/data/scripts/download_weights.sh +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/data/scripts/get_coco.sh +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/data/scripts/get_coco128.sh +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/data/scripts/get_imagenet.sh +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/data/split.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/data/split_dota.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/data/utils.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/engine/model.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/engine/predictor.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/engine/results.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/engine/trainer.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/hub/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/hub/google/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/hub/session.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/sam/modules/blocks.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/sam/modules/memory_attention.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/sam/modules/utils.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/classify/train.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/detect/val.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/model.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/obb/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/obb/predict.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/obb/train.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/obb/val.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/world/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/world/train.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/world/train_world.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/yoloe/predict.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/yoloe/train.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/models/yolo/yoloe/val.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/nn/modules/activation.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/nn/modules/block.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/nn/tasks.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/nn/text_model.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/py.typed +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/ai_gym.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/analytics.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/config.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/distance_calculation.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/heatmap.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/instance_segmentation.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/object_blurrer.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/object_counter.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/object_cropper.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/parking_management.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/queue_management.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/region_counter.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/security_alarm.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/similarity_search.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/solutions.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/speed_estimation.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/streamlit_inference.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/templates/similarity-search.html +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/trackzone.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/solutions/vision_eye.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/autodevice.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/callbacks/hub.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/callbacks/platform.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/cpu.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/dist.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/events.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/export/__init__.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/export/imx.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/git.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/logger.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/metrics.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/nms.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/plotting.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/torch_utils.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/tqdm.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics.egg-info/SOURCES.txt +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics.egg-info/requires.txt +0 -0
- {ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ultralytics
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.209
|
4
4
|
Summary: Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
5
5
|
Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
|
6
6
|
Maintainer-email: Ultralytics <hello@ultralytics.com>
|
@@ -104,7 +104,7 @@ def test_export_engine_matrix(task, dynamic, int8, half, batch):
|
|
104
104
|
)
|
105
105
|
YOLO(file)([SOURCE] * batch, imgsz=64 if dynamic else 32, device=DEVICES[0]) # exported model inference
|
106
106
|
Path(file).unlink() # cleanup
|
107
|
-
Path(file).with_suffix(".cache").unlink() if int8 else None # cleanup INT8 cache
|
107
|
+
Path(file).with_suffix(".cache").unlink(missing_ok=True) if int8 else None # cleanup INT8 cache
|
108
108
|
|
109
109
|
|
110
110
|
@pytest.mark.skipif(not DEVICES, reason="No CUDA devices available")
|
@@ -101,7 +101,7 @@ def test_export_onnx_matrix(task, dynamic, int8, half, batch, simplify, nms):
|
|
101
101
|
[ # generate all combinations except for exclusion cases
|
102
102
|
(task, dynamic, int8, half, batch, nms)
|
103
103
|
for task, dynamic, int8, half, batch, nms in product(
|
104
|
-
TASKS, [False, True], [False], [False], [1, 2], [True, False]
|
104
|
+
TASKS, [False, True], [False], [False, True], [1, 2], [True, False]
|
105
105
|
)
|
106
106
|
if not (task == "classify" and nms)
|
107
107
|
],
|
@@ -408,7 +408,7 @@ def test_utils_init():
|
|
408
408
|
def test_utils_checks():
|
409
409
|
"""Test various utility checks for filenames, git status, requirements, image sizes, and versions."""
|
410
410
|
checks.check_yolov5u_filename("yolov5n.pt")
|
411
|
-
checks.check_requirements() # check requirements.txt
|
411
|
+
checks.check_requirements("numpy") # check requirements.txt
|
412
412
|
checks.check_imgsz([600, 600], max_dim=1)
|
413
413
|
checks.check_imshow(warn=True)
|
414
414
|
checks.check_version("ultralytics", "8.0.0")
|
@@ -360,8 +360,8 @@ class Exporter:
|
|
360
360
|
if self.args.half and self.args.int8:
|
361
361
|
LOGGER.warning("half=True and int8=True are mutually exclusive, setting half=False.")
|
362
362
|
self.args.half = False
|
363
|
-
if self.args.half and onnx and self.device.type == "cpu":
|
364
|
-
LOGGER.warning("half=True only compatible with GPU export, i.e. use device=0")
|
363
|
+
if self.args.half and (onnx or jit) and self.device.type == "cpu":
|
364
|
+
LOGGER.warning("half=True only compatible with GPU export, i.e. use device=0, setting half=False.")
|
365
365
|
self.args.half = False
|
366
366
|
self.imgsz = check_imgsz(self.args.imgsz, stride=model.stride, min_dim=2) # check image size
|
367
367
|
if self.args.optimize:
|
@@ -463,7 +463,7 @@ class Exporter:
|
|
463
463
|
y = None
|
464
464
|
for _ in range(2): # dry runs
|
465
465
|
y = NMSModel(model, self.args)(im) if self.args.nms and not coreml and not imx else model(im)
|
466
|
-
if self.args.half and onnx and self.device.type != "cpu":
|
466
|
+
if self.args.half and (onnx or jit) and self.device.type != "cpu":
|
467
467
|
im, model = im.half(), model.half() # to FP16
|
468
468
|
|
469
469
|
# Filter warnings
|
@@ -510,11 +510,11 @@ class Exporter:
|
|
510
510
|
self.run_callbacks("on_export_start")
|
511
511
|
# Exports
|
512
512
|
f = [""] * len(fmts) # exported filenames
|
513
|
-
if jit
|
513
|
+
if jit: # TorchScript
|
514
514
|
f[0] = self.export_torchscript()
|
515
515
|
if engine: # TensorRT required before ONNX
|
516
516
|
f[1] = self.export_engine(dla=dla)
|
517
|
-
if onnx: # ONNX
|
517
|
+
if onnx or ncnn: # ONNX
|
518
518
|
f[2] = self.export_onnx()
|
519
519
|
if xml: # OpenVINO
|
520
520
|
f[3] = self.export_openvino()
|
@@ -612,7 +612,7 @@ class Exporter:
|
|
612
612
|
"""Export YOLO model to ONNX format."""
|
613
613
|
requirements = ["onnx>=1.12.0"]
|
614
614
|
if self.args.simplify:
|
615
|
-
requirements += ["onnxslim>=0.1.
|
615
|
+
requirements += ["onnxslim>=0.1.71", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
|
616
616
|
check_requirements(requirements)
|
617
617
|
import onnx # noqa
|
618
618
|
|
@@ -806,7 +806,7 @@ class Exporter:
|
|
806
806
|
|
807
807
|
LOGGER.info(f"\n{prefix} starting export with NCNN {ncnn.__version__}...")
|
808
808
|
f = Path(str(self.file).replace(self.file.suffix, f"_ncnn_model{os.sep}"))
|
809
|
-
|
809
|
+
f_onnx = self.file.with_suffix(".onnx")
|
810
810
|
|
811
811
|
name = Path("pnnx.exe" if WINDOWS else "pnnx") # PNNX filename
|
812
812
|
pnnx = name if name.is_file() else (ROOT / name)
|
@@ -820,10 +820,10 @@ class Exporter:
|
|
820
820
|
try:
|
821
821
|
release, assets = get_github_assets(repo="pnnx/pnnx")
|
822
822
|
asset = [x for x in assets if f"{system}.zip" in x][0]
|
823
|
-
assert isinstance(asset, str), "Unable to retrieve PNNX repo assets" # i.e. pnnx-
|
823
|
+
assert isinstance(asset, str), "Unable to retrieve PNNX repo assets" # i.e. pnnx-20250930-macos.zip
|
824
824
|
LOGGER.info(f"{prefix} successfully found latest PNNX asset file {asset}")
|
825
825
|
except Exception as e:
|
826
|
-
release = "
|
826
|
+
release = "20250930"
|
827
827
|
asset = f"pnnx-{release}-{system}.zip"
|
828
828
|
LOGGER.warning(f"{prefix} PNNX GitHub assets not found: {e}, using default {asset}")
|
829
829
|
unzip_dir = safe_download(f"https://github.com/pnnx/pnnx/releases/download/{release}/{asset}", delete=True)
|
@@ -847,7 +847,7 @@ class Exporter:
|
|
847
847
|
|
848
848
|
cmd = [
|
849
849
|
str(pnnx),
|
850
|
-
str(
|
850
|
+
str(f_onnx),
|
851
851
|
*ncnn_args,
|
852
852
|
*pnnx_args,
|
853
853
|
f"fp16={int(self.args.half)}",
|
@@ -1014,7 +1014,7 @@ class Exporter:
|
|
1014
1014
|
"ai-edge-litert>=1.2.0" + (",<1.4.0" if MACOS else ""), # required by 'onnx2tf' package
|
1015
1015
|
"onnx>=1.12.0",
|
1016
1016
|
"onnx2tf>=1.26.3",
|
1017
|
-
"onnxslim>=0.1.
|
1017
|
+
"onnxslim>=0.1.71",
|
1018
1018
|
"onnxruntime-gpu" if cuda else "onnxruntime",
|
1019
1019
|
"protobuf>=5",
|
1020
1020
|
),
|
@@ -1039,6 +1039,9 @@ class Exporter:
|
|
1039
1039
|
attempt_download_asset(f"{onnx2tf_file}.zip", unzip=True, delete=True)
|
1040
1040
|
|
1041
1041
|
# Export to ONNX
|
1042
|
+
if "rtdetr" in self.model.model[-1]._get_name().lower():
|
1043
|
+
self.args.opset = self.args.opset or 19
|
1044
|
+
assert 16 <= self.args.opset <= 19, "RTDETR export requires opset>=16;<=19"
|
1042
1045
|
self.args.simplify = True
|
1043
1046
|
f_onnx = self.export_onnx()
|
1044
1047
|
|
@@ -429,7 +429,7 @@ class Tuner:
|
|
429
429
|
x = np.loadtxt(self.tune_csv, ndmin=2, delimiter=",", skiprows=1)
|
430
430
|
fitness = x[:, 0] # first column
|
431
431
|
best_idx = fitness.argmax()
|
432
|
-
best_is_current = best_idx ==
|
432
|
+
best_is_current = best_idx == i
|
433
433
|
if best_is_current:
|
434
434
|
best_save_dir = str(save_dir)
|
435
435
|
best_metrics = {k: round(v, 5) for k, v in metrics.items()}
|
@@ -254,7 +254,7 @@ class AutoBackend(nn.Module):
|
|
254
254
|
session = onnxruntime.InferenceSession(w, providers=providers)
|
255
255
|
else:
|
256
256
|
check_requirements(
|
257
|
-
|
257
|
+
("model-compression-toolkit>=2.4.1", "sony-custom-layers[torch]>=0.3.0", "onnxruntime-extensions")
|
258
258
|
)
|
259
259
|
w = next(Path(w).glob("*.onnx"))
|
260
260
|
LOGGER.info(f"Loading {w} for ONNX IMX inference...")
|
@@ -896,6 +896,10 @@ class RTDETRDecoder(nn.Module):
|
|
896
896
|
"""
|
897
897
|
|
898
898
|
export = False # export mode
|
899
|
+
shapes = []
|
900
|
+
anchors = torch.empty(0)
|
901
|
+
valid_mask = torch.empty(0)
|
902
|
+
dynamic = False
|
899
903
|
|
900
904
|
def __init__(
|
901
905
|
self,
|
@@ -1116,10 +1120,12 @@ class RTDETRDecoder(nn.Module):
|
|
1116
1120
|
enc_scores (torch.Tensor): Encoded scores.
|
1117
1121
|
"""
|
1118
1122
|
bs = feats.shape[0]
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1123
|
+
if self.dynamic or self.shapes != shapes:
|
1124
|
+
self.anchors, self.valid_mask = self._generate_anchors(shapes, dtype=feats.dtype, device=feats.device)
|
1125
|
+
self.shapes = shapes
|
1122
1126
|
|
1127
|
+
# Prepare input for decoder
|
1128
|
+
features = self.enc_output(self.valid_mask * feats) # bs, h*w, 256
|
1123
1129
|
enc_outputs_scores = self.enc_score_head(features) # (bs, h*w, nc)
|
1124
1130
|
|
1125
1131
|
# Query selection
|
@@ -1131,7 +1137,7 @@ class RTDETRDecoder(nn.Module):
|
|
1131
1137
|
# (bs, num_queries, 256)
|
1132
1138
|
top_k_features = features[batch_ind, topk_ind].view(bs, self.num_queries, -1)
|
1133
1139
|
# (bs, num_queries, 4)
|
1134
|
-
top_k_anchors = anchors[:, topk_ind].view(bs, self.num_queries, -1)
|
1140
|
+
top_k_anchors = self.anchors[:, topk_ind].view(bs, self.num_queries, -1)
|
1135
1141
|
|
1136
1142
|
# Dynamic anchors + static content
|
1137
1143
|
refer_bbox = self.enc_bbox_head(top_k_features) + top_k_anchors
|
@@ -595,7 +595,7 @@ class ProfileModels:
|
|
595
595
|
mean_time (float): Mean inference time in milliseconds.
|
596
596
|
std_time (float): Standard deviation of inference time in milliseconds.
|
597
597
|
"""
|
598
|
-
check_requirements("onnxruntime")
|
598
|
+
check_requirements([("onnxruntime", "onnxruntime-gpu")]) # either package meets requirements
|
599
599
|
import onnxruntime as ort
|
600
600
|
|
601
601
|
# Session with either 'TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider'
|
@@ -363,8 +363,9 @@ def check_requirements(requirements=ROOT.parent / "requirements.txt", exclude=()
|
|
363
363
|
Check if installed dependencies meet Ultralytics YOLO models requirements and attempt to auto-update if needed.
|
364
364
|
|
365
365
|
Args:
|
366
|
-
requirements (Path | str | list[str] | tuple[str]): Path to a requirements.txt file, a single package
|
367
|
-
requirement as a string,
|
366
|
+
requirements (Path | str | list[str|tuple] | tuple[str]): Path to a requirements.txt file, a single package
|
367
|
+
requirement as a string, a list of package requirements as strings, or a list containing strings and
|
368
|
+
tuples of interchangeable packages.
|
368
369
|
exclude (tuple): Tuple of package names to exclude from checking.
|
369
370
|
install (bool): If True, attempt to auto-update packages that don't meet requirements.
|
370
371
|
cmds (str): Additional commands to pass to the pip install command when auto-updating.
|
@@ -376,10 +377,13 @@ def check_requirements(requirements=ROOT.parent / "requirements.txt", exclude=()
|
|
376
377
|
>>> check_requirements("path/to/requirements.txt")
|
377
378
|
|
378
379
|
Check a single package
|
379
|
-
>>> check_requirements("ultralytics>=8.
|
380
|
+
>>> check_requirements("ultralytics>=8.3.200", cmds="--index-url https://download.pytorch.org/whl/cpu")
|
380
381
|
|
381
382
|
Check multiple packages
|
382
|
-
>>> check_requirements(["numpy", "ultralytics
|
383
|
+
>>> check_requirements(["numpy", "ultralytics"])
|
384
|
+
|
385
|
+
Check with interchangeable packages
|
386
|
+
>>> check_requirements([("onnxruntime", "onnxruntime-gpu"), "numpy"])
|
383
387
|
"""
|
384
388
|
prefix = colorstr("red", "bold", "requirements:")
|
385
389
|
if isinstance(requirements, Path): # requirements.txt file
|
@@ -391,13 +395,22 @@ def check_requirements(requirements=ROOT.parent / "requirements.txt", exclude=()
|
|
391
395
|
|
392
396
|
pkgs = []
|
393
397
|
for r in requirements:
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
398
|
+
candidates = r if isinstance(r, (list, tuple)) else [r]
|
399
|
+
satisfied = False
|
400
|
+
|
401
|
+
for candidate in candidates:
|
402
|
+
r_stripped = candidate.rpartition("/")[-1].replace(".git", "") # replace git+https://org/repo.git -> 'repo'
|
403
|
+
match = re.match(r"([a-zA-Z0-9-_]+)([<>!=~]+.*)?", r_stripped)
|
404
|
+
name, required = match[1], match[2].strip() if match[2] else ""
|
405
|
+
try:
|
406
|
+
if check_version(metadata.version(name), required):
|
407
|
+
satisfied = True
|
408
|
+
break
|
409
|
+
except (AssertionError, metadata.PackageNotFoundError):
|
410
|
+
continue
|
411
|
+
|
412
|
+
if not satisfied:
|
413
|
+
pkgs.append(candidates[0])
|
401
414
|
|
402
415
|
@Retry(times=2, delay=1)
|
403
416
|
def attempt_install(packages, commands, use_uv):
|
@@ -374,7 +374,7 @@ def safe_download(
|
|
374
374
|
raise # Re-raise immediately - no point retrying if insufficient disk space
|
375
375
|
except Exception as e:
|
376
376
|
if i == 0 and not is_online():
|
377
|
-
raise ConnectionError(emojis(f"❌ Download failure for {uri}. Environment
|
377
|
+
raise ConnectionError(emojis(f"❌ Download failure for {uri}. Environment may be offline.")) from e
|
378
378
|
elif i >= retry:
|
379
379
|
raise ConnectionError(emojis(f"❌ Download failure for {uri}. Retry limit reached. {e}")) from e
|
380
380
|
LOGGER.warning(f"Download failure, retrying {i + 1}/{retry} {uri}... {e}")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ultralytics
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.209
|
4
4
|
Summary: Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
5
5
|
Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
|
6
6
|
Maintainer-email: Ultralytics <hello@ultralytics.com>
|
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
|
{ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/coco8-multispectral.yaml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/datasets/dota8-multispectral.yaml
RENAMED
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
|
{ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml
RENAMED
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
|
{ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml
RENAMED
File without changes
|
{ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml
RENAMED
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
|
{ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml
RENAMED
File without changes
|
{ultralytics-8.3.207 → ultralytics-8.3.209}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml
RENAMED
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
|