dgenerate-ultralytics-headless 8.3.192__tar.gz → 8.3.193__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.
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/PKG-INFO +1 -1
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/dgenerate_ultralytics_headless.egg-info/PKG-INFO +1 -1
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/__init__.py +1 -1
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/__init__.py +7 -5
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/xView.yaml +1 -1
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/data/utils.py +1 -1
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/engine/exporter.py +5 -4
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/engine/model.py +4 -4
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/engine/predictor.py +7 -3
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/engine/trainer.py +4 -4
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/segment/val.py +13 -13
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/yoloe/val.py +2 -2
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/nn/__init__.py +2 -4
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/nn/autobackend.py +2 -2
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/nn/tasks.py +2 -51
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/__init__.py +5 -1
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/checks.py +2 -1
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/tal.py +2 -2
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/torch_utils.py +7 -6
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/tqdm.py +49 -74
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/tuner.py +1 -1
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/LICENSE +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/README.md +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/dgenerate_ultralytics_headless.egg-info/SOURCES.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/dgenerate_ultralytics_headless.egg-info/dependency_links.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/dgenerate_ultralytics_headless.egg-info/entry_points.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/dgenerate_ultralytics_headless.egg-info/requires.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/dgenerate_ultralytics_headless.egg-info/top_level.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/pyproject.toml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/setup.cfg +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/tests/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/tests/conftest.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/tests/test_cli.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/tests/test_cuda.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/tests/test_engine.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/tests/test_exports.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/tests/test_integrations.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/tests/test_python.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/tests/test_solutions.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/assets/bus.jpg +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/assets/zidane.jpg +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/dota8.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/lvis.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/signature.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/default.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/data/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/data/annotator.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/data/augment.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/data/base.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/data/build.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/data/converter.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/data/dataset.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/data/loaders.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/data/scripts/download_weights.sh +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/data/scripts/get_coco.sh +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/data/scripts/get_coco128.sh +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/data/scripts/get_imagenet.sh +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/data/split.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/data/split_dota.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/engine/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/engine/results.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/engine/tuner.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/engine/validator.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/hub/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/hub/auth.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/hub/google/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/hub/session.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/hub/utils.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/fastsam/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/fastsam/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/fastsam/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/fastsam/utils.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/fastsam/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/nas/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/nas/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/nas/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/nas/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/rtdetr/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/rtdetr/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/rtdetr/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/rtdetr/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/rtdetr/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/sam/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/sam/amg.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/sam/build.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/sam/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/sam/modules/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/sam/modules/blocks.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/sam/modules/decoders.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/sam/modules/encoders.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/sam/modules/memory_attention.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/sam/modules/sam.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/sam/modules/transformer.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/sam/modules/utils.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/sam/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/utils/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/utils/loss.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/utils/ops.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/classify/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/classify/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/classify/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/detect/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/detect/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/detect/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/obb/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/obb/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/obb/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/obb/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/pose/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/pose/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/pose/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/segment/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/segment/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/world/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/world/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/world/train_world.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/yoloe/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/yoloe/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/nn/modules/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/nn/modules/activation.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/nn/modules/block.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/nn/modules/conv.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/nn/modules/head.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/nn/modules/transformer.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/nn/modules/utils.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/nn/text_model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/py.typed +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/ai_gym.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/analytics.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/config.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/distance_calculation.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/heatmap.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/instance_segmentation.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/object_blurrer.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/object_counter.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/object_cropper.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/parking_management.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/queue_management.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/region_counter.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/security_alarm.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/similarity_search.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/solutions.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/speed_estimation.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/streamlit_inference.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/templates/similarity-search.html +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/trackzone.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/solutions/vision_eye.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/trackers/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/trackers/basetrack.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/trackers/bot_sort.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/trackers/byte_tracker.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/trackers/track.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/trackers/utils/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/trackers/utils/gmc.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/trackers/utils/matching.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/autobatch.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/autodevice.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/benchmarks.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/callbacks/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/callbacks/base.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/callbacks/clearml.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/callbacks/comet.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/callbacks/dvc.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/callbacks/hub.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/callbacks/neptune.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/callbacks/platform.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/callbacks/raytune.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/callbacks/wb.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/dist.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/downloads.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/errors.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/export.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/files.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/git.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/instance.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/logger.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/loss.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/metrics.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/nms.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/ops.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/patches.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/plotting.py +0 -0
- {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.193}/ultralytics/utils/triton.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: dgenerate-ultralytics-headless
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.193
|
4
4
|
Summary: Automatically built Ultralytics package with python-opencv-headless dependency instead of python-opencv
|
5
5
|
Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
|
6
6
|
Maintainer-email: Ultralytics <hello@ultralytics.com>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: dgenerate-ultralytics-headless
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.193
|
4
4
|
Summary: Automatically built Ultralytics package with python-opencv-headless dependency instead of python-opencv
|
5
5
|
Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
|
6
6
|
Maintainer-email: Ultralytics <hello@ultralytics.com>
|
@@ -15,6 +15,7 @@ from ultralytics.utils import (
|
|
15
15
|
DEFAULT_CFG,
|
16
16
|
DEFAULT_CFG_DICT,
|
17
17
|
DEFAULT_CFG_PATH,
|
18
|
+
FLOAT_OR_INT,
|
18
19
|
IS_VSCODE,
|
19
20
|
LOGGER,
|
20
21
|
RANK,
|
@@ -22,6 +23,7 @@ from ultralytics.utils import (
|
|
22
23
|
RUNS_DIR,
|
23
24
|
SETTINGS,
|
24
25
|
SETTINGS_FILE,
|
26
|
+
STR_OR_PATH,
|
25
27
|
TESTS_RUNNING,
|
26
28
|
YAML,
|
27
29
|
IterableSimpleNamespace,
|
@@ -267,7 +269,7 @@ def cfg2dict(cfg: str | Path | dict | SimpleNamespace) -> dict:
|
|
267
269
|
- If cfg is a SimpleNamespace object, it's converted to a dictionary using vars().
|
268
270
|
- If cfg is already a dictionary, it's returned unchanged.
|
269
271
|
"""
|
270
|
-
if isinstance(cfg,
|
272
|
+
if isinstance(cfg, STR_OR_PATH):
|
271
273
|
cfg = YAML.load(cfg) # load dict
|
272
274
|
elif isinstance(cfg, SimpleNamespace):
|
273
275
|
cfg = vars(cfg) # convert to dict
|
@@ -309,7 +311,7 @@ def get_cfg(cfg: str | Path | dict | SimpleNamespace = DEFAULT_CFG_DICT, overrid
|
|
309
311
|
|
310
312
|
# Special handling for numeric project/name
|
311
313
|
for k in "project", "name":
|
312
|
-
if k in cfg and isinstance(cfg[k],
|
314
|
+
if k in cfg and isinstance(cfg[k], FLOAT_OR_INT):
|
313
315
|
cfg[k] = str(cfg[k])
|
314
316
|
if cfg.get("name") == "model": # assign model to 'name' arg
|
315
317
|
cfg["name"] = str(cfg.get("model", "")).partition(".")[0]
|
@@ -352,7 +354,7 @@ def check_cfg(cfg: dict, hard: bool = True) -> None:
|
|
352
354
|
"""
|
353
355
|
for k, v in cfg.items():
|
354
356
|
if v is not None: # None values may be from optional args
|
355
|
-
if k in CFG_FLOAT_KEYS and not isinstance(v,
|
357
|
+
if k in CFG_FLOAT_KEYS and not isinstance(v, FLOAT_OR_INT):
|
356
358
|
if hard:
|
357
359
|
raise TypeError(
|
358
360
|
f"'{k}={v}' is of invalid type {type(v).__name__}. "
|
@@ -360,7 +362,7 @@ def check_cfg(cfg: dict, hard: bool = True) -> None:
|
|
360
362
|
)
|
361
363
|
cfg[k] = float(v)
|
362
364
|
elif k in CFG_FRACTION_KEYS:
|
363
|
-
if not isinstance(v,
|
365
|
+
if not isinstance(v, FLOAT_OR_INT):
|
364
366
|
if hard:
|
365
367
|
raise TypeError(
|
366
368
|
f"'{k}={v}' is of invalid type {type(v).__name__}. "
|
@@ -413,7 +415,7 @@ def get_save_dir(args: SimpleNamespace, name: str = None) -> Path:
|
|
413
415
|
name = name or args.name or f"{args.mode}"
|
414
416
|
save_dir = increment_path(Path(project) / name, exist_ok=args.exist_ok if RANK in {-1, 0} else True)
|
415
417
|
|
416
|
-
return Path(save_dir)
|
418
|
+
return Path(save_dir).resolve() # resolve to display full path in console
|
417
419
|
|
418
420
|
|
419
421
|
def _handle_deprecation(custom: dict) -> dict:
|
@@ -216,7 +216,7 @@ def verify_image_label(args: tuple) -> list:
|
|
216
216
|
points = lb[:, 1:]
|
217
217
|
# Coordinate points check with 1% tolerance
|
218
218
|
assert points.max() <= 1.01, f"non-normalized or out of bounds coordinates {points[points > 1.01]}"
|
219
|
-
assert lb.min() >= -0.01, f"negative class labels {lb[lb < -0.01]}"
|
219
|
+
assert lb.min() >= -0.01, f"negative class labels or coordinate {lb[lb < -0.01]}"
|
220
220
|
|
221
221
|
# All labels
|
222
222
|
max_cls = 0 if single_cls else lb[:, 0].max() # max label count
|
@@ -90,6 +90,7 @@ from ultralytics.utils import (
|
|
90
90
|
RKNN_CHIPS,
|
91
91
|
ROOT,
|
92
92
|
SETTINGS,
|
93
|
+
TORCH_VERSION,
|
93
94
|
WINDOWS,
|
94
95
|
YAML,
|
95
96
|
callbacks,
|
@@ -567,7 +568,7 @@ class Exporter:
|
|
567
568
|
@try_export
|
568
569
|
def export_torchscript(self, prefix=colorstr("TorchScript:")):
|
569
570
|
"""Export YOLO model to TorchScript format."""
|
570
|
-
LOGGER.info(f"\n{prefix} starting export with torch {
|
571
|
+
LOGGER.info(f"\n{prefix} starting export with torch {TORCH_VERSION}...")
|
571
572
|
f = self.file.with_suffix(".torchscript")
|
572
573
|
|
573
574
|
ts = torch.jit.trace(NMSModel(self.model, self.args) if self.args.nms else self.model, self.im, strict=False)
|
@@ -586,7 +587,7 @@ class Exporter:
|
|
586
587
|
"""Export YOLO model to ONNX format."""
|
587
588
|
requirements = ["onnx>=1.12.0"]
|
588
589
|
if self.args.simplify:
|
589
|
-
requirements += ["onnxslim
|
590
|
+
requirements += ["onnxslim==0.1.65", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
|
590
591
|
check_requirements(requirements)
|
591
592
|
import onnx # noqa
|
592
593
|
|
@@ -648,7 +649,7 @@ class Exporter:
|
|
648
649
|
import openvino as ov
|
649
650
|
|
650
651
|
LOGGER.info(f"\n{prefix} starting export with openvino {ov.__version__}...")
|
651
|
-
assert TORCH_1_13, f"OpenVINO export requires torch>=1.13.0 but torch=={
|
652
|
+
assert TORCH_1_13, f"OpenVINO export requires torch>=1.13.0 but torch=={TORCH_VERSION} is installed"
|
652
653
|
ov_model = ov.convert_model(
|
653
654
|
NMSModel(self.model, self.args) if self.args.nms else self.model,
|
654
655
|
input=None if self.args.dynamic else [self.im.shape],
|
@@ -964,7 +965,7 @@ class Exporter:
|
|
964
965
|
"ai-edge-litert>=1.2.0,<1.4.0", # required by 'onnx2tf' package
|
965
966
|
"onnx>=1.12.0",
|
966
967
|
"onnx2tf>=1.26.3",
|
967
|
-
"onnxslim
|
968
|
+
"onnxslim==0.1.65",
|
968
969
|
"onnxruntime-gpu" if cuda else "onnxruntime",
|
969
970
|
"protobuf>=5",
|
970
971
|
),
|
@@ -12,7 +12,7 @@ from PIL import Image
|
|
12
12
|
|
13
13
|
from ultralytics.cfg import TASK2DATA, get_cfg, get_save_dir
|
14
14
|
from ultralytics.engine.results import Results
|
15
|
-
from ultralytics.nn.tasks import
|
15
|
+
from ultralytics.nn.tasks import guess_model_task, load_checkpoint, yaml_model_load
|
16
16
|
from ultralytics.utils import (
|
17
17
|
ARGV,
|
18
18
|
ASSETS,
|
@@ -294,7 +294,7 @@ class Model(torch.nn.Module):
|
|
294
294
|
weights = checks.check_model_file_from_stem(weights) # add suffix, i.e. yolo11n -> yolo11n.pt
|
295
295
|
|
296
296
|
if str(weights).rpartition(".")[-1] == "pt":
|
297
|
-
self.model, self.ckpt =
|
297
|
+
self.model, self.ckpt = load_checkpoint(weights)
|
298
298
|
self.task = self.model.task
|
299
299
|
self.overrides = self.model.args = self._reset_ckpt_args(self.model.args)
|
300
300
|
self.ckpt_path = self.model.pt_path
|
@@ -385,7 +385,7 @@ class Model(torch.nn.Module):
|
|
385
385
|
self._check_is_pytorch_model()
|
386
386
|
if isinstance(weights, (str, Path)):
|
387
387
|
self.overrides["pretrained"] = weights # remember the weights for DDP training
|
388
|
-
weights, self.ckpt =
|
388
|
+
weights, self.ckpt = load_checkpoint(weights)
|
389
389
|
self.model.load(weights)
|
390
390
|
return self
|
391
391
|
|
@@ -802,7 +802,7 @@ class Model(torch.nn.Module):
|
|
802
802
|
# Update model and cfg after training
|
803
803
|
if RANK in {-1, 0}:
|
804
804
|
ckpt = self.trainer.best if self.trainer.best.exists() else self.trainer.last
|
805
|
-
self.model, self.ckpt =
|
805
|
+
self.model, self.ckpt = load_checkpoint(ckpt)
|
806
806
|
self.overrides = self.model.args
|
807
807
|
self.metrics = getattr(self.trainer.validator, "metrics", None) # TODO: no metrics returned by DDP
|
808
808
|
return self.metrics
|
@@ -266,13 +266,17 @@ class BasePredictor:
|
|
266
266
|
channels=getattr(self.model, "ch", 3),
|
267
267
|
)
|
268
268
|
self.source_type = self.dataset.source_type
|
269
|
-
|
269
|
+
long_sequence = (
|
270
270
|
self.source_type.stream
|
271
271
|
or self.source_type.screenshot
|
272
272
|
or len(self.dataset) > 1000 # many images
|
273
273
|
or any(getattr(self.dataset, "video_flag", [False]))
|
274
|
-
)
|
275
|
-
|
274
|
+
)
|
275
|
+
if long_sequence:
|
276
|
+
import torchvision # noqa (import here triggers torchvision NMS use in nms.py)
|
277
|
+
|
278
|
+
if not getattr(self, "stream", True): # videos
|
279
|
+
LOGGER.warning(STREAM_WARNING)
|
276
280
|
self.vid_writer = {}
|
277
281
|
|
278
282
|
@smart_inference_mode()
|
@@ -24,7 +24,7 @@ from torch import nn, optim
|
|
24
24
|
from ultralytics import __version__
|
25
25
|
from ultralytics.cfg import get_cfg, get_save_dir
|
26
26
|
from ultralytics.data.utils import check_cls_dataset, check_det_dataset
|
27
|
-
from ultralytics.nn.tasks import
|
27
|
+
from ultralytics.nn.tasks import load_checkpoint
|
28
28
|
from ultralytics.utils import (
|
29
29
|
DEFAULT_CFG,
|
30
30
|
GIT,
|
@@ -644,10 +644,10 @@ class BaseTrainer:
|
|
644
644
|
cfg, weights = self.model, None
|
645
645
|
ckpt = None
|
646
646
|
if str(self.model).endswith(".pt"):
|
647
|
-
weights, ckpt =
|
647
|
+
weights, ckpt = load_checkpoint(self.model)
|
648
648
|
cfg = weights.yaml
|
649
649
|
elif isinstance(self.args.pretrained, (str, Path)):
|
650
|
-
weights, _ =
|
650
|
+
weights, _ = load_checkpoint(self.args.pretrained)
|
651
651
|
self.model = self.get_model(cfg=cfg, weights=weights, verbose=RANK == -1) # calls Model(cfg, weights)
|
652
652
|
return ckpt
|
653
653
|
|
@@ -768,7 +768,7 @@ class BaseTrainer:
|
|
768
768
|
last = Path(check_file(resume) if exists else get_latest_run())
|
769
769
|
|
770
770
|
# Check that resume data YAML exists, otherwise strip to force re-download of dataset
|
771
|
-
ckpt_args =
|
771
|
+
ckpt_args = load_checkpoint(last)[0].args
|
772
772
|
if not isinstance(ckpt_args["data"], dict) and not Path(ckpt_args["data"]).exists():
|
773
773
|
ckpt_args["data"] = self.args.data
|
774
774
|
|
@@ -133,8 +133,17 @@ class SegmentationValidator(DetectionValidator):
|
|
133
133
|
(Dict[str, Any]): Prepared batch with processed annotations.
|
134
134
|
"""
|
135
135
|
prepared_batch = super()._prepare_batch(si, batch)
|
136
|
-
|
137
|
-
|
136
|
+
nl = len(prepared_batch["cls"])
|
137
|
+
if self.args.overlap_mask:
|
138
|
+
masks = batch["masks"][si]
|
139
|
+
index = torch.arange(1, nl + 1, device=masks.device).view(nl, 1, 1)
|
140
|
+
masks = (masks == index).float()
|
141
|
+
else:
|
142
|
+
masks = batch["masks"][batch["batch_idx"] == si]
|
143
|
+
if nl and self.process is ops.process_mask_native:
|
144
|
+
masks = F.interpolate(masks[None], prepared_batch["imgsz"], mode="bilinear", align_corners=False)[0]
|
145
|
+
masks = masks.gt_(0.5)
|
146
|
+
prepared_batch["masks"] = masks
|
138
147
|
return prepared_batch
|
139
148
|
|
140
149
|
def _process_batch(self, preds: dict[str, torch.Tensor], batch: dict[str, Any]) -> dict[str, np.ndarray]:
|
@@ -158,20 +167,11 @@ class SegmentationValidator(DetectionValidator):
|
|
158
167
|
>>> correct_preds = validator._process_batch(preds, batch)
|
159
168
|
"""
|
160
169
|
tp = super()._process_batch(preds, batch)
|
161
|
-
gt_cls
|
170
|
+
gt_cls = batch["cls"]
|
162
171
|
if len(gt_cls) == 0 or len(preds["cls"]) == 0:
|
163
172
|
tp_m = np.zeros((len(preds["cls"]), self.niou), dtype=bool)
|
164
173
|
else:
|
165
|
-
|
166
|
-
if self.args.overlap_mask:
|
167
|
-
nl = len(gt_cls)
|
168
|
-
index = torch.arange(nl, device=gt_masks.device).view(nl, 1, 1) + 1
|
169
|
-
gt_masks = gt_masks.repeat(nl, 1, 1) # shape(1,640,640) -> (n,640,640)
|
170
|
-
gt_masks = torch.where(gt_masks == index, 1.0, 0.0)
|
171
|
-
if gt_masks.shape[1:] != pred_masks.shape[1:]:
|
172
|
-
gt_masks = F.interpolate(gt_masks[None], pred_masks.shape[1:], mode="bilinear", align_corners=False)[0]
|
173
|
-
gt_masks = gt_masks.gt_(0.5)
|
174
|
-
iou = mask_iou(gt_masks.view(gt_masks.shape[0], -1), pred_masks.view(pred_masks.shape[0], -1))
|
174
|
+
iou = mask_iou(batch["masks"].flatten(1), preds["masks"].flatten(1))
|
175
175
|
tp_m = self.match_predictions(preds["cls"], gt_cls, iou).cpu().numpy()
|
176
176
|
tp.update({"tp_m": tp_m}) # update tp with mask IoU
|
177
177
|
return tp
|
@@ -186,9 +186,9 @@ class YOLOEDetectValidator(DetectionValidator):
|
|
186
186
|
self.device = select_device(self.args.device, verbose=False)
|
187
187
|
|
188
188
|
if isinstance(model, (str, Path)):
|
189
|
-
from ultralytics.nn.tasks import
|
189
|
+
from ultralytics.nn.tasks import load_checkpoint
|
190
190
|
|
191
|
-
model =
|
191
|
+
model, _ = load_checkpoint(model, device=self.device) # model, ckpt
|
192
192
|
model.eval().to(self.device)
|
193
193
|
data = check_det_dataset(refer_data or self.args.data)
|
194
194
|
names = [name.split("/", 1)[0] for name in list(data["names"].values())]
|
@@ -5,18 +5,16 @@ from .tasks import (
|
|
5
5
|
ClassificationModel,
|
6
6
|
DetectionModel,
|
7
7
|
SegmentationModel,
|
8
|
-
attempt_load_one_weight,
|
9
|
-
attempt_load_weights,
|
10
8
|
guess_model_scale,
|
11
9
|
guess_model_task,
|
10
|
+
load_checkpoint,
|
12
11
|
parse_model,
|
13
12
|
torch_safe_load,
|
14
13
|
yaml_model_load,
|
15
14
|
)
|
16
15
|
|
17
16
|
__all__ = (
|
18
|
-
"
|
19
|
-
"attempt_load_weights",
|
17
|
+
"load_checkpoint",
|
20
18
|
"parse_model",
|
21
19
|
"yaml_model_load",
|
22
20
|
"guess_model_task",
|
@@ -203,9 +203,9 @@ class AutoBackend(nn.Module):
|
|
203
203
|
model = model.fuse(verbose=verbose)
|
204
204
|
model = model.to(device)
|
205
205
|
else: # pt file
|
206
|
-
from ultralytics.nn.tasks import
|
206
|
+
from ultralytics.nn.tasks import load_checkpoint
|
207
207
|
|
208
|
-
model, _ =
|
208
|
+
model, _ = load_checkpoint(model, device=device, fuse=fuse) # load model, ckpt
|
209
209
|
|
210
210
|
# Common PyTorch model processing
|
211
211
|
if hasattr(model, "kpt_shape"):
|
@@ -1483,61 +1483,12 @@ def torch_safe_load(weight, safe_only=False):
|
|
1483
1483
|
return ckpt, file
|
1484
1484
|
|
1485
1485
|
|
1486
|
-
def
|
1487
|
-
"""
|
1488
|
-
Load an ensemble of models weights=[a,b,c] or a single model weights=[a] or weights=a.
|
1489
|
-
|
1490
|
-
Args:
|
1491
|
-
weights (str | List[str]): Model weights path(s).
|
1492
|
-
device (torch.device, optional): Device to load model to.
|
1493
|
-
inplace (bool): Whether to do inplace operations.
|
1494
|
-
fuse (bool): Whether to fuse model.
|
1495
|
-
|
1496
|
-
Returns:
|
1497
|
-
(torch.nn.Module): Loaded model.
|
1498
|
-
"""
|
1499
|
-
ensemble = Ensemble()
|
1500
|
-
for w in weights if isinstance(weights, list) else [weights]:
|
1501
|
-
ckpt, w = torch_safe_load(w) # load ckpt
|
1502
|
-
args = {**DEFAULT_CFG_DICT, **ckpt["train_args"]} if "train_args" in ckpt else None # combined args
|
1503
|
-
model = (ckpt.get("ema") or ckpt["model"]).float() # FP32 model
|
1504
|
-
|
1505
|
-
# Model compatibility updates
|
1506
|
-
model.args = args # attach args to model
|
1507
|
-
model.pt_path = w # attach *.pt file path to model
|
1508
|
-
model.task = getattr(model, "task", guess_model_task(model))
|
1509
|
-
if not hasattr(model, "stride"):
|
1510
|
-
model.stride = torch.tensor([32.0])
|
1511
|
-
|
1512
|
-
# Append
|
1513
|
-
ensemble.append((model.fuse().eval() if fuse and hasattr(model, "fuse") else model.eval()).to(device))
|
1514
|
-
|
1515
|
-
# Module updates
|
1516
|
-
for m in ensemble.modules():
|
1517
|
-
if hasattr(m, "inplace"):
|
1518
|
-
m.inplace = inplace
|
1519
|
-
elif isinstance(m, torch.nn.Upsample) and not hasattr(m, "recompute_scale_factor"):
|
1520
|
-
m.recompute_scale_factor = None # torch 1.11.0 compatibility
|
1521
|
-
|
1522
|
-
# Return model
|
1523
|
-
if len(ensemble) == 1:
|
1524
|
-
return ensemble[-1]
|
1525
|
-
|
1526
|
-
# Return ensemble
|
1527
|
-
LOGGER.info(f"Ensemble created with {weights}\n")
|
1528
|
-
for k in "names", "nc", "yaml":
|
1529
|
-
setattr(ensemble, k, getattr(ensemble[0], k))
|
1530
|
-
ensemble.stride = ensemble[int(torch.argmax(torch.tensor([m.stride.max() for m in ensemble])))].stride
|
1531
|
-
assert all(ensemble[0].nc == m.nc for m in ensemble), f"Models differ in class counts {[m.nc for m in ensemble]}"
|
1532
|
-
return ensemble
|
1533
|
-
|
1534
|
-
|
1535
|
-
def attempt_load_one_weight(weight, device=None, inplace=True, fuse=False):
|
1486
|
+
def load_checkpoint(weight, device=None, inplace=True, fuse=False):
|
1536
1487
|
"""
|
1537
1488
|
Load a single model weights.
|
1538
1489
|
|
1539
1490
|
Args:
|
1540
|
-
weight (str): Model weight path.
|
1491
|
+
weight (str | Path): Model weight path.
|
1541
1492
|
device (torch.device, optional): Device to load model to.
|
1542
1493
|
inplace (bool): Whether to do inplace operations.
|
1543
1494
|
fuse (bool): Whether to fuse model.
|
@@ -49,7 +49,7 @@ MACOS_VERSION = platform.mac_ver()[0] if MACOS else None
|
|
49
49
|
NOT_MACOS14 = not (MACOS and MACOS_VERSION.startswith("14."))
|
50
50
|
ARM64 = platform.machine() in {"arm64", "aarch64"} # ARM64 booleans
|
51
51
|
PYTHON_VERSION = platform.python_version()
|
52
|
-
TORCH_VERSION = torch.__version__
|
52
|
+
TORCH_VERSION = str(torch.__version__) # Normalize torch.__version__ (PyTorch>1.9 returns TorchVersion objects)
|
53
53
|
TORCHVISION_VERSION = importlib.metadata.version("torchvision") # faster than importing torchvision
|
54
54
|
IS_VSCODE = os.environ.get("TERM_PROGRAM", False) == "vscode"
|
55
55
|
RKNN_CHIPS = frozenset(
|
@@ -132,6 +132,10 @@ os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3" # suppress verbose TF compiler warning
|
|
132
132
|
os.environ["TORCH_CPP_LOG_LEVEL"] = "ERROR" # suppress "NNPACK.cpp could not initialize NNPACK" warnings
|
133
133
|
os.environ["KINETO_LOG_LEVEL"] = "5" # suppress verbose PyTorch profiler output when computing FLOPs
|
134
134
|
|
135
|
+
# Precompiled type tuples for faster isinstance() checks
|
136
|
+
FLOAT_OR_INT = (float, int)
|
137
|
+
STR_OR_PATH = (str, Path)
|
138
|
+
|
135
139
|
|
136
140
|
class DataExportMixin:
|
137
141
|
"""
|
@@ -36,6 +36,7 @@ from ultralytics.utils import (
|
|
36
36
|
PYTHON_VERSION,
|
37
37
|
RKNN_CHIPS,
|
38
38
|
ROOT,
|
39
|
+
TORCH_VERSION,
|
39
40
|
TORCHVISION_VERSION,
|
40
41
|
USER_CONFIG_DIR,
|
41
42
|
WINDOWS,
|
@@ -464,7 +465,7 @@ def check_torchvision():
|
|
464
465
|
}
|
465
466
|
|
466
467
|
# Check major and minor versions
|
467
|
-
v_torch = ".".join(
|
468
|
+
v_torch = ".".join(TORCH_VERSION.split("+", 1)[0].split(".")[:2])
|
468
469
|
if v_torch in compatibility_table:
|
469
470
|
compatible_versions = compatibility_table[v_torch]
|
470
471
|
v_torchvision = ".".join(TORCHVISION_VERSION.split("+", 1)[0].split(".")[:2])
|
@@ -3,12 +3,12 @@
|
|
3
3
|
import torch
|
4
4
|
import torch.nn as nn
|
5
5
|
|
6
|
-
from . import LOGGER
|
6
|
+
from . import LOGGER, TORCH_VERSION
|
7
7
|
from .checks import check_version
|
8
8
|
from .metrics import bbox_iou, probiou
|
9
9
|
from .ops import xywhr2xyxyxyxy
|
10
10
|
|
11
|
-
TORCH_1_10 = check_version(
|
11
|
+
TORCH_1_10 = check_version(TORCH_VERSION, "1.10.0")
|
12
12
|
|
13
13
|
|
14
14
|
class TaskAlignedAssigner(nn.Module):
|
@@ -27,6 +27,7 @@ from ultralytics.utils import (
|
|
27
27
|
LOGGER,
|
28
28
|
NUM_THREADS,
|
29
29
|
PYTHON_VERSION,
|
30
|
+
TORCH_VERSION,
|
30
31
|
TORCHVISION_VERSION,
|
31
32
|
WINDOWS,
|
32
33
|
colorstr,
|
@@ -35,15 +36,15 @@ from ultralytics.utils.checks import check_version
|
|
35
36
|
from ultralytics.utils.patches import torch_load
|
36
37
|
|
37
38
|
# Version checks (all default to version>=min_version)
|
38
|
-
TORCH_1_9 = check_version(
|
39
|
-
TORCH_1_13 = check_version(
|
40
|
-
TORCH_2_0 = check_version(
|
41
|
-
TORCH_2_4 = check_version(
|
39
|
+
TORCH_1_9 = check_version(TORCH_VERSION, "1.9.0")
|
40
|
+
TORCH_1_13 = check_version(TORCH_VERSION, "1.13.0")
|
41
|
+
TORCH_2_0 = check_version(TORCH_VERSION, "2.0.0")
|
42
|
+
TORCH_2_4 = check_version(TORCH_VERSION, "2.4.0")
|
42
43
|
TORCHVISION_0_10 = check_version(TORCHVISION_VERSION, "0.10.0")
|
43
44
|
TORCHVISION_0_11 = check_version(TORCHVISION_VERSION, "0.11.0")
|
44
45
|
TORCHVISION_0_13 = check_version(TORCHVISION_VERSION, "0.13.0")
|
45
46
|
TORCHVISION_0_18 = check_version(TORCHVISION_VERSION, "0.18.0")
|
46
|
-
if WINDOWS and check_version(
|
47
|
+
if WINDOWS and check_version(TORCH_VERSION, "==2.4.0"): # reject version 2.4.0 on Windows
|
47
48
|
LOGGER.warning(
|
48
49
|
"Known issue with torch==2.4.0 on Windows with CPU, recommend upgrading to torch>=2.4.1 to resolve "
|
49
50
|
"https://github.com/ultralytics/ultralytics/issues/15049"
|
@@ -165,7 +166,7 @@ def select_device(device="", batch=0, newline=False, verbose=True):
|
|
165
166
|
if isinstance(device, torch.device) or str(device).startswith(("tpu", "intel")):
|
166
167
|
return device
|
167
168
|
|
168
|
-
s = f"Ultralytics {__version__} 🚀 Python-{PYTHON_VERSION} torch-{
|
169
|
+
s = f"Ultralytics {__version__} 🚀 Python-{PYTHON_VERSION} torch-{TORCH_VERSION} "
|
169
170
|
device = str(device).lower()
|
170
171
|
for remove in "cuda:", "none", "(", ")", "[", "]", "'", " ":
|
171
172
|
device = device.replace(remove, "") # to string, 'cuda:0' -> '0' and '(0, 1)' -> '0,1'
|