ultralytics 8.3.221__tar.gz → 8.3.222__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.221 → ultralytics-8.3.222}/PKG-INFO +1 -1
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/pyproject.toml +2 -2
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/tests/test_python.py +5 -5
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/__init__.py +1 -1
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/data/base.py +1 -1
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/data/utils.py +1 -1
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/engine/exporter.py +6 -9
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/engine/model.py +1 -1
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/engine/trainer.py +1 -1
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/classify/train.py +2 -2
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/__init__.py +4 -4
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/benchmarks.py +3 -1
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/export/imx.py +39 -28
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/metrics.py +2 -2
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/plotting.py +1 -1
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics.egg-info/PKG-INFO +1 -1
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/LICENSE +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/README.md +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/setup.cfg +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/tests/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/tests/conftest.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/tests/test_cli.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/tests/test_cuda.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/tests/test_engine.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/tests/test_exports.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/tests/test_integrations.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/tests/test_solutions.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/assets/bus.jpg +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/assets/zidane.jpg +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/VOC.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/coco.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/coco128.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/coco8.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/construction-ppe.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/dota8.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/lvis.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/signature.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/datasets/xView.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/default.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/trackers/botsort.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/data/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/data/annotator.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/data/augment.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/data/build.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/data/converter.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/data/dataset.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/data/loaders.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/data/scripts/download_weights.sh +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/data/scripts/get_coco.sh +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/data/scripts/get_coco128.sh +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/data/scripts/get_imagenet.sh +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/data/split.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/data/split_dota.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/engine/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/engine/predictor.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/engine/results.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/engine/tuner.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/engine/validator.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/hub/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/hub/auth.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/hub/google/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/hub/session.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/hub/utils.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/fastsam/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/fastsam/model.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/fastsam/predict.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/fastsam/utils.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/fastsam/val.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/nas/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/nas/model.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/nas/predict.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/nas/val.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/rtdetr/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/rtdetr/model.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/rtdetr/predict.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/rtdetr/train.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/rtdetr/val.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/sam/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/sam/amg.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/sam/build.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/sam/model.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/sam/modules/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/sam/modules/blocks.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/sam/modules/decoders.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/sam/modules/encoders.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/sam/modules/memory_attention.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/sam/modules/sam.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/sam/modules/transformer.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/sam/modules/utils.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/sam/predict.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/utils/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/utils/loss.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/utils/ops.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/classify/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/classify/predict.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/classify/val.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/detect/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/detect/predict.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/detect/train.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/detect/val.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/model.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/obb/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/obb/predict.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/obb/train.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/obb/val.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/pose/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/pose/predict.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/pose/train.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/pose/val.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/segment/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/segment/predict.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/segment/train.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/segment/val.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/world/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/world/train.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/world/train_world.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/yoloe/predict.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/yoloe/train.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/models/yolo/yoloe/val.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/nn/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/nn/autobackend.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/nn/modules/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/nn/modules/activation.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/nn/modules/block.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/nn/modules/conv.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/nn/modules/head.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/nn/modules/transformer.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/nn/modules/utils.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/nn/tasks.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/nn/text_model.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/py.typed +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/ai_gym.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/analytics.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/config.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/distance_calculation.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/heatmap.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/instance_segmentation.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/object_blurrer.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/object_counter.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/object_cropper.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/parking_management.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/queue_management.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/region_counter.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/security_alarm.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/similarity_search.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/solutions.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/speed_estimation.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/streamlit_inference.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/templates/similarity-search.html +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/trackzone.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/solutions/vision_eye.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/trackers/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/trackers/basetrack.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/trackers/bot_sort.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/trackers/byte_tracker.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/trackers/track.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/trackers/utils/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/trackers/utils/gmc.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/trackers/utils/kalman_filter.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/trackers/utils/matching.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/autobatch.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/autodevice.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/callbacks/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/callbacks/base.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/callbacks/clearml.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/callbacks/comet.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/callbacks/dvc.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/callbacks/hub.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/callbacks/mlflow.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/callbacks/neptune.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/callbacks/platform.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/callbacks/raytune.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/callbacks/tensorboard.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/callbacks/wb.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/checks.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/cpu.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/dist.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/downloads.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/errors.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/events.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/export/__init__.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/files.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/git.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/instance.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/logger.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/loss.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/nms.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/ops.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/patches.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/tal.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/torch_utils.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/tqdm.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/triton.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics/utils/tuner.py +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics.egg-info/SOURCES.txt +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics.egg-info/dependency_links.txt +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics.egg-info/entry_points.txt +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/ultralytics.egg-info/requires.txt +0 -0
 - {ultralytics-8.3.221 → ultralytics-8.3.222}/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.222
         
     | 
| 
       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>
         
     | 
| 
         @@ -189,5 +189,5 @@ close-quotes-on-newline = true 
     | 
|
| 
       189 
189 
     | 
    
         
             
            in-place = true
         
     | 
| 
       190 
190 
     | 
    
         | 
| 
       191 
191 
     | 
    
         
             
            [tool.codespell]
         
     | 
| 
       192 
     | 
    
         
            -
            ignore-words-list = "crate,nd,ned,strack,dota,ane,segway,fo,gool,winn,commend,bloc,nam,afterall"
         
     | 
| 
       193 
     | 
    
         
            -
            skip =  
     | 
| 
      
 192 
     | 
    
         
            +
            ignore-words-list = "grey,writeable,finalY,RepResNet,Idenfy,WIT,Smoot,EHR,ROUGE,ALS,iTerm,Carmel,FPR,Hach,Calle,ore,COO,MOT,crate,nd,ned,strack,dota,ane,segway,fo,gool,winn,commend,bloc,nam,afterall,skelton,goin"
         
     | 
| 
      
 193 
     | 
    
         
            +
            skip = "lvis.yaml,open-images-v7.yaml,ImageNet.yaml,*.pt,*.pth,*.torchscript,*.onnx,*.tflite,*.pb,*.bin,*.param,*.mlmodel,*.engine,*.npy,*.data*,*.csv,*pnnx*,*venv*,*translat*,*lock*,__pycache__*,*.ico,*.jpg,*.png,*.webp,*.avif,*.mp4,*.mov,/runs,/.git,./docs/??/*.md,./docs/mkdocs_??.yml"
         
     | 
| 
         @@ -136,23 +136,23 @@ def test_predict_visualize(model): 
     | 
|
| 
       136 
136 
     | 
    
         
             
                YOLO(WEIGHTS_DIR / model)(SOURCE, imgsz=32, visualize=True)
         
     | 
| 
       137 
137 
     | 
    
         | 
| 
       138 
138 
     | 
    
         | 
| 
       139 
     | 
    
         
            -
            def  
     | 
| 
       140 
     | 
    
         
            -
                """Test YOLO prediction on SOURCE converted to  
     | 
| 
      
 139 
     | 
    
         
            +
            def test_predict_gray_and_4ch(tmp_path):
         
     | 
| 
      
 140 
     | 
    
         
            +
                """Test YOLO prediction on SOURCE converted to grayscale and 4-channel images with various filenames."""
         
     | 
| 
       141 
141 
     | 
    
         
             
                im = Image.open(SOURCE)
         
     | 
| 
       142 
142 
     | 
    
         | 
| 
       143 
     | 
    
         
            -
                 
     | 
| 
      
 143 
     | 
    
         
            +
                source_grayscale = tmp_path / "grayscale.jpg"
         
     | 
| 
       144 
144 
     | 
    
         
             
                source_rgba = tmp_path / "4ch.png"
         
     | 
| 
       145 
145 
     | 
    
         
             
                source_non_utf = tmp_path / "non_UTF_测试文件_tést_image.jpg"
         
     | 
| 
       146 
146 
     | 
    
         
             
                source_spaces = tmp_path / "image with spaces.jpg"
         
     | 
| 
       147 
147 
     | 
    
         | 
| 
       148 
     | 
    
         
            -
                im.convert("L").save( 
     | 
| 
      
 148 
     | 
    
         
            +
                im.convert("L").save(source_grayscale)  # grayscale
         
     | 
| 
       149 
149 
     | 
    
         
             
                im.convert("RGBA").save(source_rgba)  # 4-ch PNG with alpha
         
     | 
| 
       150 
150 
     | 
    
         
             
                im.save(source_non_utf)  # non-UTF characters in filename
         
     | 
| 
       151 
151 
     | 
    
         
             
                im.save(source_spaces)  # spaces in filename
         
     | 
| 
       152 
152 
     | 
    
         | 
| 
       153 
153 
     | 
    
         
             
                # Inference
         
     | 
| 
       154 
154 
     | 
    
         
             
                model = YOLO(MODEL)
         
     | 
| 
       155 
     | 
    
         
            -
                for f in source_rgba,  
     | 
| 
      
 155 
     | 
    
         
            +
                for f in source_rgba, source_grayscale, source_non_utf, source_spaces:
         
     | 
| 
       156 
156 
     | 
    
         
             
                    for source in Image.open(f), cv2.imread(str(f)), f:
         
     | 
| 
       157 
157 
     | 
    
         
             
                        results = model(source, save=True, verbose=True, imgsz=32)
         
     | 
| 
       158 
158 
     | 
    
         
             
                        assert len(results) == 1  # verify that an image was run
         
     | 
| 
         @@ -307,7 +307,7 @@ class BaseDataset(Dataset): 
     | 
|
| 
       307 
307 
     | 
    
         
             
                        b += im.nbytes
         
     | 
| 
       308 
308 
     | 
    
         
             
                        if not os.access(Path(im_file).parent, os.W_OK):
         
     | 
| 
       309 
309 
     | 
    
         
             
                            self.cache = None
         
     | 
| 
       310 
     | 
    
         
            -
                            LOGGER.warning(f"{self.prefix}Skipping caching images to disk, directory not  
     | 
| 
      
 310 
     | 
    
         
            +
                            LOGGER.warning(f"{self.prefix}Skipping caching images to disk, directory not writable")
         
     | 
| 
       311 
311 
     | 
    
         
             
                            return False
         
     | 
| 
       312 
312 
     | 
    
         
             
                    disk_required = b * self.ni / n * (1 + safety_margin)  # bytes required to cache dataset to disk
         
     | 
| 
       313 
313 
     | 
    
         
             
                    total, _used, free = shutil.disk_usage(Path(self.im_files[0]).parent)
         
     | 
| 
         @@ -804,4 +804,4 @@ def save_dataset_cache_file(prefix: str, path: Path, x: dict, version: str): 
     | 
|
| 
       804 
804 
     | 
    
         
             
                        np.save(file, x)
         
     | 
| 
       805 
805 
     | 
    
         
             
                    LOGGER.info(f"{prefix}New cache created: {path}")
         
     | 
| 
       806 
806 
     | 
    
         
             
                else:
         
     | 
| 
       807 
     | 
    
         
            -
                    LOGGER.warning(f"{prefix}Cache directory {path.parent} is not  
     | 
| 
      
 807 
     | 
    
         
            +
                    LOGGER.warning(f"{prefix}Cache directory {path.parent} is not writable, cache not saved.")
         
     | 
| 
         @@ -367,10 +367,10 @@ class Exporter: 
     | 
|
| 
       367 
367 
     | 
    
         
             
                        if not self.args.int8:
         
     | 
| 
       368 
368 
     | 
    
         
             
                            LOGGER.warning("IMX export requires int8=True, setting int8=True.")
         
     | 
| 
       369 
369 
     | 
    
         
             
                            self.args.int8 = True
         
     | 
| 
       370 
     | 
    
         
            -
                        if not self.args.nms:
         
     | 
| 
      
 370 
     | 
    
         
            +
                        if not self.args.nms and model.task in {"detect", "pose"}:
         
     | 
| 
       371 
371 
     | 
    
         
             
                            LOGGER.warning("IMX export requires nms=True, setting nms=True.")
         
     | 
| 
       372 
372 
     | 
    
         
             
                            self.args.nms = True
         
     | 
| 
       373 
     | 
    
         
            -
                        if model.task not in {"detect", "pose"}:
         
     | 
| 
      
 373 
     | 
    
         
            +
                        if model.task not in {"detect", "pose", "classify"}:
         
     | 
| 
       374 
374 
     | 
    
         
             
                            raise ValueError("IMX export only supported for detection and pose estimation models.")
         
     | 
| 
       375 
375 
     | 
    
         
             
                    if not hasattr(model, "names"):
         
     | 
| 
       376 
376 
     | 
    
         
             
                        model.names = default_class_names()
         
     | 
| 
         @@ -396,8 +396,6 @@ class Exporter: 
     | 
|
| 
       396 
396 
     | 
    
         
             
                        assert self.args.name in RKNN_CHIPS, (
         
     | 
| 
       397 
397 
     | 
    
         
             
                            f"Invalid processor name '{self.args.name}' for Rockchip RKNN export. Valid names are {RKNN_CHIPS}."
         
     | 
| 
       398 
398 
     | 
    
         
             
                        )
         
     | 
| 
       399 
     | 
    
         
            -
                    if self.args.int8 and tflite:
         
     | 
| 
       400 
     | 
    
         
            -
                        assert not getattr(model, "end2end", False), "TFLite INT8 export not supported for end2end models."
         
     | 
| 
       401 
399 
     | 
    
         
             
                    if self.args.nms:
         
     | 
| 
       402 
400 
     | 
    
         
             
                        assert not isinstance(model, ClassificationModel), "'nms=True' is not valid for classification models."
         
     | 
| 
       403 
401 
     | 
    
         
             
                        assert not tflite or not ARM64 or not LINUX, "TFLite export with NMS unsupported on ARM64 Linux"
         
     | 
| 
         @@ -1510,17 +1508,16 @@ class NMSModel(torch.nn.Module): 
     | 
|
| 
       1510 
1508 
     | 
    
         
             
                        box, score, cls, extra = box[mask], score[mask], cls[mask], extra[mask]
         
     | 
| 
       1511 
1509 
     | 
    
         
             
                        nmsbox = box.clone()
         
     | 
| 
       1512 
1510 
     | 
    
         
             
                        # `8` is the minimum value experimented to get correct NMS results for obb
         
     | 
| 
       1513 
     | 
    
         
            -
                        multiplier = 8 if self.obb else 1
         
     | 
| 
      
 1511 
     | 
    
         
            +
                        multiplier = (8 if self.obb else 1) / max(len(self.model.names), 1)
         
     | 
| 
       1514 
1512 
     | 
    
         
             
                        # Normalize boxes for NMS since large values for class offset causes issue with int8 quantization
         
     | 
| 
       1515 
1513 
     | 
    
         
             
                        if self.args.format == "tflite":  # TFLite is already normalized
         
     | 
| 
       1516 
1514 
     | 
    
         
             
                            nmsbox *= multiplier
         
     | 
| 
       1517 
1515 
     | 
    
         
             
                        else:
         
     | 
| 
       1518 
     | 
    
         
            -
                            nmsbox = multiplier * nmsbox / torch.tensor(x.shape[2:], **kwargs).max()
         
     | 
| 
       1519 
     | 
    
         
            -
                        if not self.args.agnostic_nms:  # class- 
     | 
| 
      
 1516 
     | 
    
         
            +
                            nmsbox = multiplier * (nmsbox / torch.tensor(x.shape[2:], **kwargs).max())
         
     | 
| 
      
 1517 
     | 
    
         
            +
                        if not self.args.agnostic_nms:  # class-wise NMS
         
     | 
| 
       1520 
1518 
     | 
    
         
             
                            end = 2 if self.obb else 4
         
     | 
| 
       1521 
1519 
     | 
    
         
             
                            # fully explicit expansion otherwise reshape error
         
     | 
| 
       1522 
     | 
    
         
            -
                             
     | 
| 
       1523 
     | 
    
         
            -
                            cls_offset = cls.reshape(-1, 1).expand(nmsbox.shape[0], end)
         
     | 
| 
      
 1520 
     | 
    
         
            +
                            cls_offset = cls.view(cls.shape[0], 1).expand(cls.shape[0], end)
         
     | 
| 
       1524 
1521 
     | 
    
         
             
                            offbox = nmsbox[:, :end] + cls_offset * multiplier
         
     | 
| 
       1525 
1522 
     | 
    
         
             
                            nmsbox = torch.cat((offbox, nmsbox[:, end:]), dim=-1)
         
     | 
| 
       1526 
1523 
     | 
    
         
             
                        nms_fn = (
         
     | 
| 
         @@ -877,7 +877,7 @@ class Model(torch.nn.Module): 
     | 
|
| 
       877 
877 
     | 
    
         
             
                        >>> model = model._apply(lambda t: t.cuda())  # Move model to GPU
         
     | 
| 
       878 
878 
     | 
    
         
             
                    """
         
     | 
| 
       879 
879 
     | 
    
         
             
                    self._check_is_pytorch_model()
         
     | 
| 
       880 
     | 
    
         
            -
                    self = super()._apply(fn) 
     | 
| 
      
 880 
     | 
    
         
            +
                    self = super()._apply(fn)
         
     | 
| 
       881 
881 
     | 
    
         
             
                    self.predictor = None  # reset predictor as device may have changed
         
     | 
| 
       882 
882 
     | 
    
         
             
                    self.overrides["device"] = self.device  # was str(self.device) i.e. device(type='cuda', index=0) -> 'cuda:0'
         
     | 
| 
       883 
883 
     | 
    
         
             
                    return self
         
     | 
| 
         @@ -727,7 +727,7 @@ class BaseTrainer: 
     | 
|
| 
       727 
727 
     | 
    
         | 
| 
       728 
728 
     | 
    
         
             
                def label_loss_items(self, loss_items=None, prefix="train"):
         
     | 
| 
       729 
729 
     | 
    
         
             
                    """
         
     | 
| 
       730 
     | 
    
         
            -
                    Return a loss dict with  
     | 
| 
      
 730 
     | 
    
         
            +
                    Return a loss dict with labeled training loss items tensor.
         
     | 
| 
       731 
731 
     | 
    
         | 
| 
       732 
732 
     | 
    
         
             
                    Note:
         
     | 
| 
       733 
733 
     | 
    
         
             
                        This is not needed for classification but necessary for segmentation & detection
         
     | 
| 
         @@ -38,7 +38,7 @@ class ClassificationTrainer(BaseTrainer): 
     | 
|
| 
       38 
38 
     | 
    
         
             
                    preprocess_batch: Preprocess a batch of images and classes.
         
     | 
| 
       39 
39 
     | 
    
         
             
                    progress_string: Return a formatted string showing training progress.
         
     | 
| 
       40 
40 
     | 
    
         
             
                    get_validator: Return an instance of ClassificationValidator.
         
     | 
| 
       41 
     | 
    
         
            -
                    label_loss_items: Return a loss dict with  
     | 
| 
      
 41 
     | 
    
         
            +
                    label_loss_items: Return a loss dict with labeled training loss items.
         
     | 
| 
       42 
42 
     | 
    
         
             
                    final_eval: Evaluate trained model and save validation results.
         
     | 
| 
       43 
43 
     | 
    
         
             
                    plot_training_samples: Plot training samples with their annotations.
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
         @@ -178,7 +178,7 @@ class ClassificationTrainer(BaseTrainer): 
     | 
|
| 
       178 
178 
     | 
    
         | 
| 
       179 
179 
     | 
    
         
             
                def label_loss_items(self, loss_items: torch.Tensor | None = None, prefix: str = "train"):
         
     | 
| 
       180 
180 
     | 
    
         
             
                    """
         
     | 
| 
       181 
     | 
    
         
            -
                    Return a loss dict with  
     | 
| 
      
 181 
     | 
    
         
            +
                    Return a loss dict with labeled training loss items tensor.
         
     | 
| 
       182 
182 
     | 
    
         | 
| 
       183 
183 
     | 
    
         
             
                    Args:
         
     | 
| 
       184 
184 
     | 
    
         
             
                        loss_items (torch.Tensor, optional): Loss tensor items.
         
     | 
| 
         @@ -795,13 +795,13 @@ def is_pip_package(filepath: str = __name__) -> bool: 
     | 
|
| 
       795 
795 
     | 
    
         | 
| 
       796 
796 
     | 
    
         
             
            def is_dir_writeable(dir_path: str | Path) -> bool:
         
     | 
| 
       797 
797 
     | 
    
         
             
                """
         
     | 
| 
       798 
     | 
    
         
            -
                Check if a directory is  
     | 
| 
      
 798 
     | 
    
         
            +
                Check if a directory is writable.
         
     | 
| 
       799 
799 
     | 
    
         | 
| 
       800 
800 
     | 
    
         
             
                Args:
         
     | 
| 
       801 
801 
     | 
    
         
             
                    dir_path (str | Path): The path to the directory.
         
     | 
| 
       802 
802 
     | 
    
         | 
| 
       803 
803 
     | 
    
         
             
                Returns:
         
     | 
| 
       804 
     | 
    
         
            -
                    (bool): True if the directory is  
     | 
| 
      
 804 
     | 
    
         
            +
                    (bool): True if the directory is writable, False otherwise.
         
     | 
| 
       805 
805 
     | 
    
         
             
                """
         
     | 
| 
       806 
806 
     | 
    
         
             
                return os.access(str(dir_path), os.W_OK)
         
     | 
| 
       807 
807 
     | 
    
         | 
| 
         @@ -882,14 +882,14 @@ def get_user_config_dir(sub_dir="Ultralytics"): 
     | 
|
| 
       882 
882 
     | 
    
         
             
                    p.mkdir(parents=True, exist_ok=True)
         
     | 
| 
       883 
883 
     | 
    
         
             
                    return p
         
     | 
| 
       884 
884 
     | 
    
         | 
| 
       885 
     | 
    
         
            -
                # Fallbacks for Docker, GCP/AWS functions where only /tmp is  
     | 
| 
      
 885 
     | 
    
         
            +
                # Fallbacks for Docker, GCP/AWS functions where only /tmp is writable
         
     | 
| 
       886 
886 
     | 
    
         
             
                for alt in [Path("/tmp") / sub_dir, Path.cwd() / sub_dir]:
         
     | 
| 
       887 
887 
     | 
    
         
             
                    if alt.exists():
         
     | 
| 
       888 
888 
     | 
    
         
             
                        return alt
         
     | 
| 
       889 
889 
     | 
    
         
             
                    if is_dir_writeable(alt.parent):
         
     | 
| 
       890 
890 
     | 
    
         
             
                        alt.mkdir(parents=True, exist_ok=True)
         
     | 
| 
       891 
891 
     | 
    
         
             
                        LOGGER.warning(
         
     | 
| 
       892 
     | 
    
         
            -
                            f"user config directory '{p}' is not  
     | 
| 
      
 892 
     | 
    
         
            +
                            f"user config directory '{p}' is not writable, using '{alt}'. Set YOLO_CONFIG_DIR to override."
         
     | 
| 
       893 
893 
     | 
    
         
             
                        )
         
     | 
| 
       894 
894 
     | 
    
         
             
                        return alt
         
     | 
| 
       895 
895 
     | 
    
         | 
| 
         @@ -144,7 +144,9 @@ def benchmark( 
     | 
|
| 
       144 
144 
     | 
    
         
             
                        if format == "imx":
         
     | 
| 
       145 
145 
     | 
    
         
             
                            assert not is_end2end
         
     | 
| 
       146 
146 
     | 
    
         
             
                            assert not isinstance(model, YOLOWorld), "YOLOWorldv2 IMX exports not supported"
         
     | 
| 
       147 
     | 
    
         
            -
                            assert model.task  
     | 
| 
      
 147 
     | 
    
         
            +
                            assert model.task in {"detect", "classify", "pose"}, (
         
     | 
| 
      
 148 
     | 
    
         
            +
                                "IMX export is only supported for detection, classification and pose estimation tasks"
         
     | 
| 
      
 149 
     | 
    
         
            +
                            )
         
     | 
| 
       148 
150 
     | 
    
         
             
                            assert "C2f" in model.__str__(), "IMX only supported for YOLOv8n and YOLO11n"
         
     | 
| 
       149 
151 
     | 
    
         
             
                        if format == "rknn":
         
     | 
| 
       150 
152 
     | 
    
         
             
                            assert not isinstance(model, YOLOWorld), "YOLOWorldv2 RKNN exports not supported yet"
         
     | 
| 
         @@ -6,6 +6,7 @@ import subprocess 
     | 
|
| 
       6 
6 
     | 
    
         
             
            import types
         
     | 
| 
       7 
7 
     | 
    
         
             
            from pathlib import Path
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
      
 9 
     | 
    
         
            +
            import numpy as np
         
     | 
| 
       9 
10 
     | 
    
         
             
            import torch
         
     | 
| 
       10 
11 
     | 
    
         | 
| 
       11 
12 
     | 
    
         
             
            from ultralytics.nn.modules import Detect, Pose
         
     | 
| 
         @@ -13,6 +14,32 @@ from ultralytics.utils import LOGGER 
     | 
|
| 
       13 
14 
     | 
    
         
             
            from ultralytics.utils.tal import make_anchors
         
     | 
| 
       14 
15 
     | 
    
         
             
            from ultralytics.utils.torch_utils import copy_attr
         
     | 
| 
       15 
16 
     | 
    
         | 
| 
      
 17 
     | 
    
         
            +
            # Configuration for Model Compression Toolkit (MCT) quantization
         
     | 
| 
      
 18 
     | 
    
         
            +
            MCT_CONFIG = {
         
     | 
| 
      
 19 
     | 
    
         
            +
                "YOLO11": {
         
     | 
| 
      
 20 
     | 
    
         
            +
                    "detect": {
         
     | 
| 
      
 21 
     | 
    
         
            +
                        "layer_names": ["sub", "mul_2", "add_14", "cat_21"],
         
     | 
| 
      
 22 
     | 
    
         
            +
                        "weights_memory": 2585350.2439,
         
     | 
| 
      
 23 
     | 
    
         
            +
                        "n_layers": 238,
         
     | 
| 
      
 24 
     | 
    
         
            +
                    },
         
     | 
| 
      
 25 
     | 
    
         
            +
                    "pose": {
         
     | 
| 
      
 26 
     | 
    
         
            +
                        "layer_names": ["sub", "mul_2", "add_14", "cat_22", "cat_23", "mul_4", "add_15"],
         
     | 
| 
      
 27 
     | 
    
         
            +
                        "weights_memory": 2437771.67,
         
     | 
| 
      
 28 
     | 
    
         
            +
                        "n_layers": 257,
         
     | 
| 
      
 29 
     | 
    
         
            +
                    },
         
     | 
| 
      
 30 
     | 
    
         
            +
                    "classify": {"layer_names": [], "weights_memory": np.inf, "n_layers": 112},
         
     | 
| 
      
 31 
     | 
    
         
            +
                },
         
     | 
| 
      
 32 
     | 
    
         
            +
                "YOLOv8": {
         
     | 
| 
      
 33 
     | 
    
         
            +
                    "detect": {"layer_names": ["sub", "mul", "add_6", "cat_17"], "weights_memory": 2550540.8, "n_layers": 168},
         
     | 
| 
      
 34 
     | 
    
         
            +
                    "pose": {
         
     | 
| 
      
 35 
     | 
    
         
            +
                        "layer_names": ["add_7", "mul_2", "cat_19", "mul", "sub", "add_6", "cat_18"],
         
     | 
| 
      
 36 
     | 
    
         
            +
                        "weights_memory": 2482451.85,
         
     | 
| 
      
 37 
     | 
    
         
            +
                        "n_layers": 187,
         
     | 
| 
      
 38 
     | 
    
         
            +
                    },
         
     | 
| 
      
 39 
     | 
    
         
            +
                    "classify": {"layer_names": [], "weights_memory": np.inf, "n_layers": 73},
         
     | 
| 
      
 40 
     | 
    
         
            +
                },
         
     | 
| 
      
 41 
     | 
    
         
            +
            }
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
       16 
43 
     | 
    
         | 
| 
       17 
44 
     | 
    
         
             
            class FXModel(torch.nn.Module):
         
     | 
| 
       18 
45 
     | 
    
         
             
                """
         
     | 
| 
         @@ -200,30 +227,13 @@ def torch2imx( 
     | 
|
| 
       200 
227 
     | 
    
         
             
                tpc = get_target_platform_capabilities(tpc_version="4.0", device_type="imx500")
         
     | 
| 
       201 
228 
     | 
    
         | 
| 
       202 
229 
     | 
    
         
             
                bit_cfg = mct.core.BitWidthConfig()
         
     | 
| 
       203 
     | 
    
         
            -
                if "C2PSA" in model.__str__() 
     | 
| 
       204 
     | 
    
         
            -
                    if model.task == "detect":
         
     | 
| 
       205 
     | 
    
         
            -
                        layer_names = ["sub", "mul_2", "add_14", "cat_21"]
         
     | 
| 
       206 
     | 
    
         
            -
                        weights_memory = 2585350.2439
         
     | 
| 
       207 
     | 
    
         
            -
                        n_layers = 238  # 238 layers for fused YOLO11n
         
     | 
| 
       208 
     | 
    
         
            -
                    elif model.task == "pose":
         
     | 
| 
       209 
     | 
    
         
            -
                        layer_names = ["sub", "mul_2", "add_14", "cat_22", "cat_23", "mul_4", "add_15"]
         
     | 
| 
       210 
     | 
    
         
            -
                        weights_memory = 2437771.67
         
     | 
| 
       211 
     | 
    
         
            -
                        n_layers = 257  # 257 layers for fused YOLO11n-pose
         
     | 
| 
       212 
     | 
    
         
            -
                else:  # YOLOv8
         
     | 
| 
       213 
     | 
    
         
            -
                    if model.task == "detect":
         
     | 
| 
       214 
     | 
    
         
            -
                        layer_names = ["sub", "mul", "add_6", "cat_17"]
         
     | 
| 
       215 
     | 
    
         
            -
                        weights_memory = 2550540.8
         
     | 
| 
       216 
     | 
    
         
            -
                        n_layers = 168  # 168 layers for fused YOLOv8n
         
     | 
| 
       217 
     | 
    
         
            -
                    elif model.task == "pose":
         
     | 
| 
       218 
     | 
    
         
            -
                        layer_names = ["add_7", "mul_2", "cat_19", "mul", "sub", "add_6", "cat_18"]
         
     | 
| 
       219 
     | 
    
         
            -
                        weights_memory = 2482451.85
         
     | 
| 
       220 
     | 
    
         
            -
                        n_layers = 187  # 187 layers for fused YOLO11n-pose
         
     | 
| 
      
 230 
     | 
    
         
            +
                mct_config = MCT_CONFIG["YOLO11" if "C2PSA" in model.__str__() else "YOLOv8"][model.task]
         
     | 
| 
       221 
231 
     | 
    
         | 
| 
       222 
232 
     | 
    
         
             
                # Check if the model has the expected number of layers
         
     | 
| 
       223 
     | 
    
         
            -
                if len(list(model.modules())) != n_layers:
         
     | 
| 
      
 233 
     | 
    
         
            +
                if len(list(model.modules())) != mct_config["n_layers"]:
         
     | 
| 
       224 
234 
     | 
    
         
             
                    raise ValueError("IMX export only supported for YOLOv8n and YOLO11n models.")
         
     | 
| 
       225 
235 
     | 
    
         | 
| 
       226 
     | 
    
         
            -
                for layer_name in layer_names:
         
     | 
| 
      
 236 
     | 
    
         
            +
                for layer_name in mct_config["layer_names"]:
         
     | 
| 
       227 
237 
     | 
    
         
             
                    bit_cfg.set_manual_activation_bit_width([mct.core.common.network_editors.NodeNameFilter(layer_name)], 16)
         
     | 
| 
       228 
238 
     | 
    
         | 
| 
       229 
239 
     | 
    
         
             
                config = mct.core.CoreConfig(
         
     | 
| 
         @@ -232,7 +242,7 @@ def torch2imx( 
     | 
|
| 
       232 
242 
     | 
    
         
             
                    bit_width_config=bit_cfg,
         
     | 
| 
       233 
243 
     | 
    
         
             
                )
         
     | 
| 
       234 
244 
     | 
    
         | 
| 
       235 
     | 
    
         
            -
                resource_utilization = mct.core.ResourceUtilization(weights_memory=weights_memory)
         
     | 
| 
      
 245 
     | 
    
         
            +
                resource_utilization = mct.core.ResourceUtilization(weights_memory=mct_config["weights_memory"])
         
     | 
| 
       236 
246 
     | 
    
         | 
| 
       237 
247 
     | 
    
         
             
                quant_model = (
         
     | 
| 
       238 
248 
     | 
    
         
             
                    mct.gptq.pytorch_gradient_post_training_quantization(  # Perform Gradient-Based Post Training Quantization
         
     | 
| 
         @@ -255,13 +265,14 @@ def torch2imx( 
     | 
|
| 
       255 
265 
     | 
    
         
             
                    )[0]
         
     | 
| 
       256 
266 
     | 
    
         
             
                )
         
     | 
| 
       257 
267 
     | 
    
         | 
| 
       258 
     | 
    
         
            -
                 
     | 
| 
       259 
     | 
    
         
            -
                     
     | 
| 
       260 
     | 
    
         
            -
             
     | 
| 
       261 
     | 
    
         
            -
             
     | 
| 
       262 
     | 
    
         
            -
             
     | 
| 
       263 
     | 
    
         
            -
             
     | 
| 
       264 
     | 
    
         
            -
             
     | 
| 
      
 268 
     | 
    
         
            +
                if model.task != "classify":
         
     | 
| 
      
 269 
     | 
    
         
            +
                    quant_model = NMSWrapper(
         
     | 
| 
      
 270 
     | 
    
         
            +
                        model=quant_model,
         
     | 
| 
      
 271 
     | 
    
         
            +
                        score_threshold=conf or 0.001,
         
     | 
| 
      
 272 
     | 
    
         
            +
                        iou_threshold=iou,
         
     | 
| 
      
 273 
     | 
    
         
            +
                        max_detections=max_det,
         
     | 
| 
      
 274 
     | 
    
         
            +
                        task=model.task,
         
     | 
| 
      
 275 
     | 
    
         
            +
                    )
         
     | 
| 
       265 
276 
     | 
    
         | 
| 
       266 
277 
     | 
    
         
             
                f = Path(str(file).replace(file.suffix, "_imx_model"))
         
     | 
| 
       267 
278 
     | 
    
         
             
                f.mkdir(exist_ok=True)
         
     | 
| 
         @@ -663,7 +663,7 @@ def plot_pr_curve( 
     | 
|
| 
       663 
663 
     | 
    
         
             
                    for i, y in enumerate(py.T):
         
     | 
| 
       664 
664 
     | 
    
         
             
                        ax.plot(px, y, linewidth=1, label=f"{names[i]} {ap[i, 0]:.3f}")  # plot(recall, precision)
         
     | 
| 
       665 
665 
     | 
    
         
             
                else:
         
     | 
| 
       666 
     | 
    
         
            -
                    ax.plot(px, py, linewidth=1, color=" 
     | 
| 
      
 666 
     | 
    
         
            +
                    ax.plot(px, py, linewidth=1, color="gray")  # plot(recall, precision)
         
     | 
| 
       667 
667 
     | 
    
         | 
| 
       668 
668 
     | 
    
         
             
                ax.plot(px, py.mean(1), linewidth=3, color="blue", label=f"all classes {ap[:, 0].mean():.3f} mAP@0.5")
         
     | 
| 
       669 
669 
     | 
    
         
             
                ax.set_xlabel("Recall")
         
     | 
| 
         @@ -708,7 +708,7 @@ def plot_mc_curve( 
     | 
|
| 
       708 
708 
     | 
    
         
             
                    for i, y in enumerate(py):
         
     | 
| 
       709 
709 
     | 
    
         
             
                        ax.plot(px, y, linewidth=1, label=f"{names[i]}")  # plot(confidence, metric)
         
     | 
| 
       710 
710 
     | 
    
         
             
                else:
         
     | 
| 
       711 
     | 
    
         
            -
                    ax.plot(px, py.T, linewidth=1, color=" 
     | 
| 
      
 711 
     | 
    
         
            +
                    ax.plot(px, py.T, linewidth=1, color="gray")  # plot(confidence, metric)
         
     | 
| 
       712 
712 
     | 
    
         | 
| 
       713 
713 
     | 
    
         
             
                y = smooth(py.mean(0), 0.1)
         
     | 
| 
       714 
714 
     | 
    
         
             
                ax.plot(px, y, linewidth=3, color="blue", label=f"all classes {y.max():.2f} at {px[y.argmax()]:.3f}")
         
     | 
| 
         @@ -722,7 +722,7 @@ def plot_images( 
     | 
|
| 
       722 
722 
     | 
    
         
             
                    convert tensor inputs to numpy arrays for processing.
         
     | 
| 
       723 
723 
     | 
    
         | 
| 
       724 
724 
     | 
    
         
             
                    Channel Support:
         
     | 
| 
       725 
     | 
    
         
            -
                    - 1 channel:  
     | 
| 
      
 725 
     | 
    
         
            +
                    - 1 channel: Grayscale
         
     | 
| 
       726 
726 
     | 
    
         
             
                    - 2 channels: Third channel added as zeros
         
     | 
| 
       727 
727 
     | 
    
         
             
                    - 3 channels: Used as-is (standard RGB)
         
     | 
| 
       728 
728 
     | 
    
         
             
                    - 4+ channels: Cropped to first 3 channels
         
     | 
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            Metadata-Version: 2.4
         
     | 
| 
       2 
2 
     | 
    
         
             
            Name: ultralytics
         
     | 
| 
       3 
     | 
    
         
            -
            Version: 8.3. 
     | 
| 
      
 3 
     | 
    
         
            +
            Version: 8.3.222
         
     | 
| 
       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
         
     | 
| 
         
            File without changes
         
     | 
    
        {ultralytics-8.3.221 → ultralytics-8.3.222}/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.221 → ultralytics-8.3.222}/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.221 → ultralytics-8.3.222}/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.221 → ultralytics-8.3.222}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml
    RENAMED
    
    | 
         
            File without changes
         
     | 
    
        {ultralytics-8.3.221 → ultralytics-8.3.222}/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.221 → ultralytics-8.3.222}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml
    RENAMED
    
    | 
         
            File without changes
         
     | 
    
        {ultralytics-8.3.221 → ultralytics-8.3.222}/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
         
     |