ultralytics 8.2.20__tar.gz → 8.2.21__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ultralytics might be problematic. Click here for more details.
- {ultralytics-8.2.20 → ultralytics-8.2.21}/PKG-INFO +1 -1
- {ultralytics-8.2.20 → ultralytics-8.2.21}/pyproject.toml +1 -1
- ultralytics-8.2.21/tests/__init__.py +22 -0
- ultralytics-8.2.21/tests/conftest.py +71 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/tests/test_exports.py +15 -15
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/__init__.py +1 -1
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/engine/exporter.py +14 -19
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/checks.py +4 -3
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics.egg-info/PKG-INFO +1 -1
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics.egg-info/SOURCES.txt +9 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/LICENSE +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/README.md +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/setup.cfg +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/tests/test_cli.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/tests/test_cuda.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/tests/test_engine.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/tests/test_explorer.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/tests/test_integrations.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/tests/test_python.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/dota8.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/lvis.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/signature.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/default.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/data/augment.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/data/base.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/data/build.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/data/converter.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/data/dataset.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/data/explorer/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/data/explorer/explorer.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/data/explorer/gui/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/data/explorer/gui/dash.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/data/explorer/utils.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/data/loaders.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/data/split_dota.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/data/utils.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/engine/model.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/engine/predictor.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/engine/results.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/engine/trainer.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/engine/tuner.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/hub/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/hub/session.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/fastsam/prompt.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/classify/train.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/detect/val.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/model.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/obb/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/obb/predict.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/obb/train.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/obb/val.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/world/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/world/train.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/models/yolo/world/train_world.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/nn/autobackend.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/nn/modules/block.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/nn/modules/head.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/nn/tasks.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/solutions/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/solutions/ai_gym.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/solutions/analytics.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/solutions/distance_calculation.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/solutions/heatmap.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/solutions/object_counter.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/solutions/parking_management.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/solutions/queue_management.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/solutions/speed_estimation.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/benchmarks.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/callbacks/hub.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/dist.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/downloads.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/metrics.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/plotting.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/torch_utils.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics.egg-info/requires.txt +0 -0
- {ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.2.
|
|
3
|
+
Version: 8.2.21
|
|
4
4
|
Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
|
5
5
|
Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
6
6
|
Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
@@ -139,7 +139,7 @@ ultralytics = "ultralytics.cfg:entrypoint"
|
|
|
139
139
|
# Tools settings -------------------------------------------------------------------------------------------------------
|
|
140
140
|
[tool.setuptools] # configuration specific to the `setuptools` build backend.
|
|
141
141
|
packages = { find = { where = ["."], include = ["ultralytics", "ultralytics.*"] } }
|
|
142
|
-
package-data = { "ultralytics" = ["**/*.yaml"], "ultralytics.assets" = ["*.jpg"] }
|
|
142
|
+
package-data = { "ultralytics" = ["**/*.yaml", "../tests/*.py"], "ultralytics.assets" = ["*.jpg"] }
|
|
143
143
|
|
|
144
144
|
[tool.setuptools.dynamic]
|
|
145
145
|
version = { attr = "ultralytics.__version__" }
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
2
|
+
|
|
3
|
+
from ultralytics.utils import ASSETS, ROOT, WEIGHTS_DIR, checks, is_dir_writeable
|
|
4
|
+
|
|
5
|
+
# Constants used in tests
|
|
6
|
+
MODEL = WEIGHTS_DIR / "path with spaces" / "yolov8n.pt" # test spaces in path
|
|
7
|
+
CFG = "yolov8n.yaml"
|
|
8
|
+
SOURCE = ASSETS / "bus.jpg"
|
|
9
|
+
TMP = (ROOT / "../tests/tmp").resolve() # temp directory for test files
|
|
10
|
+
IS_TMP_WRITEABLE = is_dir_writeable(TMP)
|
|
11
|
+
CUDA_IS_AVAILABLE = checks.cuda_is_available()
|
|
12
|
+
CUDA_DEVICE_COUNT = checks.cuda_device_count()
|
|
13
|
+
|
|
14
|
+
__all__ = (
|
|
15
|
+
"MODEL",
|
|
16
|
+
"CFG",
|
|
17
|
+
"SOURCE",
|
|
18
|
+
"TMP",
|
|
19
|
+
"IS_TMP_WRITEABLE",
|
|
20
|
+
"CUDA_IS_AVAILABLE",
|
|
21
|
+
"CUDA_DEVICE_COUNT",
|
|
22
|
+
)
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
2
|
+
|
|
3
|
+
import shutil
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
from tests import TMP
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def pytest_addoption(parser):
|
|
10
|
+
"""
|
|
11
|
+
Add custom command-line options to pytest.
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
parser (pytest.config.Parser): The pytest parser object.
|
|
15
|
+
"""
|
|
16
|
+
parser.addoption("--slow", action="store_true", default=False, help="Run slow tests")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def pytest_collection_modifyitems(config, items):
|
|
20
|
+
"""
|
|
21
|
+
Modify the list of test items to remove tests marked as slow if the --slow option is not provided.
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
config (pytest.config.Config): The pytest config object.
|
|
25
|
+
items (list): List of test items to be executed.
|
|
26
|
+
"""
|
|
27
|
+
if not config.getoption("--slow"):
|
|
28
|
+
# Remove the item entirely from the list of test items if it's marked as 'slow'
|
|
29
|
+
items[:] = [item for item in items if "slow" not in item.keywords]
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def pytest_sessionstart(session):
|
|
33
|
+
"""
|
|
34
|
+
Initialize session configurations for pytest.
|
|
35
|
+
|
|
36
|
+
This function is automatically called by pytest after the 'Session' object has been created but before performing
|
|
37
|
+
test collection. It sets the initial seeds and prepares the temporary directory for the test session.
|
|
38
|
+
|
|
39
|
+
Args:
|
|
40
|
+
session (pytest.Session): The pytest session object.
|
|
41
|
+
"""
|
|
42
|
+
from ultralytics.utils.torch_utils import init_seeds
|
|
43
|
+
|
|
44
|
+
init_seeds()
|
|
45
|
+
shutil.rmtree(TMP, ignore_errors=True) # delete any existing tests/tmp directory
|
|
46
|
+
TMP.mkdir(parents=True, exist_ok=True) # create a new empty directory
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def pytest_terminal_summary(terminalreporter, exitstatus, config):
|
|
50
|
+
"""
|
|
51
|
+
Cleanup operations after pytest session.
|
|
52
|
+
|
|
53
|
+
This function is automatically called by pytest at the end of the entire test session. It removes certain files
|
|
54
|
+
and directories used during testing.
|
|
55
|
+
|
|
56
|
+
Args:
|
|
57
|
+
terminalreporter (pytest.terminal.TerminalReporter): The terminal reporter object.
|
|
58
|
+
exitstatus (int): The exit status of the test run.
|
|
59
|
+
config (pytest.config.Config): The pytest config object.
|
|
60
|
+
"""
|
|
61
|
+
from ultralytics.utils import WEIGHTS_DIR
|
|
62
|
+
|
|
63
|
+
# Remove files
|
|
64
|
+
models = [path for x in ["*.onnx", "*.torchscript"] for path in WEIGHTS_DIR.rglob(x)]
|
|
65
|
+
for file in ["bus.jpg", "yolov8n.onnx", "yolov8n.torchscript"] + models:
|
|
66
|
+
Path(file).unlink(missing_ok=True)
|
|
67
|
+
|
|
68
|
+
# Remove directories
|
|
69
|
+
models = [path for x in ["*.mlpackage", "*_openvino_model"] for path in WEIGHTS_DIR.rglob(x)]
|
|
70
|
+
for directory in [TMP.parents[1] / ".pytest_cache", TMP] + models:
|
|
71
|
+
shutil.rmtree(directory, ignore_errors=True)
|
|
@@ -23,22 +23,22 @@ from tests import MODEL, SOURCE
|
|
|
23
23
|
|
|
24
24
|
def test_export_torchscript():
|
|
25
25
|
"""Test YOLO exports to TorchScript format."""
|
|
26
|
-
|
|
27
|
-
YOLO(
|
|
26
|
+
file = YOLO(MODEL).export(format="torchscript", optimize=False, imgsz=32)
|
|
27
|
+
YOLO(file)(SOURCE, imgsz=32) # exported model inference
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
def test_export_onnx():
|
|
31
31
|
"""Test YOLO exports to ONNX format."""
|
|
32
|
-
|
|
33
|
-
YOLO(
|
|
32
|
+
file = YOLO(MODEL).export(format="onnx", dynamic=True, imgsz=32)
|
|
33
|
+
YOLO(file)(SOURCE, imgsz=32) # exported model inference
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
@pytest.mark.skipif(checks.IS_PYTHON_3_12, reason="OpenVINO not supported in Python 3.12")
|
|
37
37
|
@pytest.mark.skipif(not TORCH_1_13, reason="OpenVINO requires torch>=1.13")
|
|
38
38
|
def test_export_openvino():
|
|
39
39
|
"""Test YOLO exports to OpenVINO format."""
|
|
40
|
-
|
|
41
|
-
YOLO(
|
|
40
|
+
file = YOLO(MODEL).export(format="openvino", imgsz=32)
|
|
41
|
+
YOLO(file)(SOURCE, imgsz=32) # exported model inference
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
@pytest.mark.slow
|
|
@@ -118,7 +118,7 @@ def test_export_torchscript_matrix(task, dynamic, int8, half, batch):
|
|
|
118
118
|
],
|
|
119
119
|
)
|
|
120
120
|
def test_export_coreml_matrix(task, dynamic, int8, half, batch):
|
|
121
|
-
"""Test YOLO exports to
|
|
121
|
+
"""Test YOLO exports to CoreML format."""
|
|
122
122
|
file = YOLO(TASK2MODEL[task]).export(
|
|
123
123
|
format="coreml",
|
|
124
124
|
imgsz=32,
|
|
@@ -138,8 +138,8 @@ def test_export_coreml_matrix(task, dynamic, int8, half, batch):
|
|
|
138
138
|
def test_export_coreml():
|
|
139
139
|
"""Test YOLO exports to CoreML format."""
|
|
140
140
|
if MACOS:
|
|
141
|
-
|
|
142
|
-
YOLO(
|
|
141
|
+
file = YOLO(MODEL).export(format="coreml", imgsz=32)
|
|
142
|
+
YOLO(file)(SOURCE, imgsz=32) # model prediction only supported on macOS for nms=False models
|
|
143
143
|
else:
|
|
144
144
|
YOLO(MODEL).export(format="coreml", nms=True, imgsz=32)
|
|
145
145
|
|
|
@@ -152,8 +152,8 @@ def test_export_tflite():
|
|
|
152
152
|
Note TF suffers from install conflicts on Windows and macOS.
|
|
153
153
|
"""
|
|
154
154
|
model = YOLO(MODEL)
|
|
155
|
-
|
|
156
|
-
YOLO(
|
|
155
|
+
file = model.export(format="tflite", imgsz=32)
|
|
156
|
+
YOLO(file)(SOURCE, imgsz=32)
|
|
157
157
|
|
|
158
158
|
|
|
159
159
|
@pytest.mark.skipif(True, reason="Test disabled")
|
|
@@ -165,8 +165,8 @@ def test_export_pb():
|
|
|
165
165
|
Note TF suffers from install conflicts on Windows and macOS.
|
|
166
166
|
"""
|
|
167
167
|
model = YOLO(MODEL)
|
|
168
|
-
|
|
169
|
-
YOLO(
|
|
168
|
+
file = model.export(format="pb", imgsz=32)
|
|
169
|
+
YOLO(file)(SOURCE, imgsz=32)
|
|
170
170
|
|
|
171
171
|
|
|
172
172
|
@pytest.mark.skipif(True, reason="Test disabled as Paddle protobuf and ONNX protobuf requirementsk conflict.")
|
|
@@ -182,5 +182,5 @@ def test_export_paddle():
|
|
|
182
182
|
@pytest.mark.slow
|
|
183
183
|
def test_export_ncnn():
|
|
184
184
|
"""Test YOLO exports to NCNN format."""
|
|
185
|
-
|
|
186
|
-
YOLO(
|
|
185
|
+
file = YOLO(MODEL).export(format="ncnn", imgsz=32)
|
|
186
|
+
YOLO(file)(SOURCE, imgsz=32) # exported model inference
|
|
@@ -83,6 +83,7 @@ from ultralytics.utils import (
|
|
|
83
83
|
WINDOWS,
|
|
84
84
|
__version__,
|
|
85
85
|
callbacks,
|
|
86
|
+
checks,
|
|
86
87
|
colorstr,
|
|
87
88
|
get_default_args,
|
|
88
89
|
yaml_save,
|
|
@@ -184,6 +185,7 @@ class Exporter:
|
|
|
184
185
|
if sum(flags) != 1:
|
|
185
186
|
raise ValueError(f"Invalid export format='{fmt}'. Valid formats are {fmts}")
|
|
186
187
|
jit, onnx, xml, engine, coreml, saved_model, pb, tflite, edgetpu, tfjs, paddle, ncnn = flags # export booleans
|
|
188
|
+
is_tf_format = any((saved_model, pb, tflite, edgetpu, tfjs))
|
|
187
189
|
|
|
188
190
|
# Device
|
|
189
191
|
if fmt == "engine" and self.args.device is None:
|
|
@@ -243,7 +245,7 @@ class Exporter:
|
|
|
243
245
|
m.dynamic = self.args.dynamic
|
|
244
246
|
m.export = True
|
|
245
247
|
m.format = self.args.format
|
|
246
|
-
elif isinstance(m, C2f) and not
|
|
248
|
+
elif isinstance(m, C2f) and not is_tf_format:
|
|
247
249
|
# EdgeTPU does not support FlexSplitV while split provides cleaner ONNX graph
|
|
248
250
|
m.forward = m.forward_split
|
|
249
251
|
|
|
@@ -303,7 +305,7 @@ class Exporter:
|
|
|
303
305
|
f[3], _ = self.export_openvino()
|
|
304
306
|
if coreml: # CoreML
|
|
305
307
|
f[4], _ = self.export_coreml()
|
|
306
|
-
if
|
|
308
|
+
if is_tf_format: # TensorFlow formats
|
|
307
309
|
self.args.int8 |= edgetpu
|
|
308
310
|
f[5], keras_model = self.export_saved_model()
|
|
309
311
|
if pb or tfjs: # pb prerequisite to tfjs
|
|
@@ -777,11 +779,10 @@ class Exporter:
|
|
|
777
779
|
_ = self.cache.write_bytes(cache)
|
|
778
780
|
|
|
779
781
|
# Load dataset w/ builder (for batching) and calibrate
|
|
780
|
-
dataset = self.get_int8_calibration_dataloader(prefix)
|
|
781
782
|
config.int8_calibrator = EngineCalibrator(
|
|
782
|
-
dataset=
|
|
783
|
+
dataset=self.get_int8_calibration_dataloader(prefix),
|
|
783
784
|
batch=2 * self.args.batch,
|
|
784
|
-
cache=self.file.with_suffix(".cache"),
|
|
785
|
+
cache=str(self.file.with_suffix(".cache")),
|
|
785
786
|
)
|
|
786
787
|
|
|
787
788
|
elif half:
|
|
@@ -813,7 +814,7 @@ class Exporter:
|
|
|
813
814
|
except ImportError:
|
|
814
815
|
suffix = "-macos" if MACOS else "-aarch64" if ARM64 else "" if cuda else "-cpu"
|
|
815
816
|
version = "" if ARM64 else "<=2.13.1"
|
|
816
|
-
check_requirements(f"tensorflow{suffix}{version}")
|
|
817
|
+
check_requirements((f"tensorflow{suffix}{version}", "keras"))
|
|
817
818
|
import tensorflow as tf # noqa
|
|
818
819
|
if ARM64:
|
|
819
820
|
check_requirements("cmake") # 'cmake' is needed to build onnxsim on aarch64
|
|
@@ -828,8 +829,8 @@ class Exporter:
|
|
|
828
829
|
"flatbuffers>=23.5.26,<100", # update old 'flatbuffers' included inside tensorflow package
|
|
829
830
|
"onnxruntime-gpu" if cuda else "onnxruntime",
|
|
830
831
|
),
|
|
831
|
-
cmds="--extra-index-url https://pypi.ngc.nvidia.com",
|
|
832
|
-
)
|
|
832
|
+
cmds="--extra-index-url https://pypi.ngc.nvidia.com", # onnx_graphsurgeon only on NVIDIA
|
|
833
|
+
)
|
|
833
834
|
|
|
834
835
|
LOGGER.info(f"\n{prefix} starting export with tensorflow {tf.__version__}...")
|
|
835
836
|
check_version(
|
|
@@ -855,24 +856,17 @@ class Exporter:
|
|
|
855
856
|
f_onnx, _ = self.export_onnx()
|
|
856
857
|
|
|
857
858
|
# Export to TF
|
|
858
|
-
tmp_file = f / "tmp_tflite_int8_calibration_images.npy" # int8 calibration images file
|
|
859
859
|
np_data = None
|
|
860
860
|
if self.args.int8:
|
|
861
|
+
tmp_file = f / "tmp_tflite_int8_calibration_images.npy" # int8 calibration images file
|
|
861
862
|
verbosity = "info"
|
|
862
863
|
if self.args.data:
|
|
863
|
-
# Generate calibration data for integer quantization
|
|
864
|
-
dataloader = self.get_int8_calibration_dataloader(prefix)
|
|
865
|
-
images = []
|
|
866
|
-
for i, batch in enumerate(dataloader):
|
|
867
|
-
if i >= 100: # maximum number of calibration images
|
|
868
|
-
break
|
|
869
|
-
im = batch["img"].permute(1, 2, 0)[None] # list to nparray, CHW to BHWC
|
|
870
|
-
images.append(im)
|
|
871
864
|
f.mkdir()
|
|
865
|
+
images = [batch["img"].permute(0, 2, 3, 1) for batch in self.get_int8_calibration_dataloader(prefix)]
|
|
872
866
|
images = torch.cat(images, 0).float()
|
|
873
867
|
# mean = images.view(-1, 3).mean(0) # imagenet mean [123.675, 116.28, 103.53]
|
|
874
868
|
# std = images.view(-1, 3).std(0) # imagenet std [58.395, 57.12, 57.375]
|
|
875
|
-
np.save(str(tmp_file), images.numpy()) # BHWC
|
|
869
|
+
np.save(str(tmp_file), images.numpy().astype(np.float32)) # BHWC
|
|
876
870
|
np_data = [["images", tmp_file, [[[[0, 0, 0]]]], [[[[255, 255, 255]]]]]]
|
|
877
871
|
else:
|
|
878
872
|
verbosity = "error"
|
|
@@ -1017,10 +1011,11 @@ class Exporter:
|
|
|
1017
1011
|
"""Add metadata to *.tflite models per https://www.tensorflow.org/lite/models/convert/metadata."""
|
|
1018
1012
|
import flatbuffers
|
|
1019
1013
|
|
|
1020
|
-
if
|
|
1014
|
+
if ARM64:
|
|
1021
1015
|
from tflite_support import metadata # noqa
|
|
1022
1016
|
from tflite_support import metadata_schema_py_generated as schema # noqa
|
|
1023
1017
|
else:
|
|
1018
|
+
# TFLite Support bug https://github.com/tensorflow/tflite-support/issues/954#issuecomment-2108570845
|
|
1024
1019
|
from tensorflow_lite_support.metadata import metadata_schema_py_generated as schema # noqa
|
|
1025
1020
|
from tensorflow_lite_support.metadata.python import metadata # noqa
|
|
1026
1021
|
|
|
@@ -23,7 +23,6 @@ from ultralytics.utils import (
|
|
|
23
23
|
ASSETS,
|
|
24
24
|
AUTOINSTALL,
|
|
25
25
|
IS_COLAB,
|
|
26
|
-
IS_DOCKER,
|
|
27
26
|
IS_JUPYTER,
|
|
28
27
|
IS_KAGGLE,
|
|
29
28
|
IS_PIP_PACKAGE,
|
|
@@ -322,17 +321,18 @@ def check_font(font="Arial.ttf"):
|
|
|
322
321
|
return file
|
|
323
322
|
|
|
324
323
|
|
|
325
|
-
def check_python(minimum: str = "3.8.0") -> bool:
|
|
324
|
+
def check_python(minimum: str = "3.8.0", hard: bool = True) -> bool:
|
|
326
325
|
"""
|
|
327
326
|
Check current python version against the required minimum version.
|
|
328
327
|
|
|
329
328
|
Args:
|
|
330
329
|
minimum (str): Required minimum version of python.
|
|
330
|
+
hard (bool, optional): If True, raise an AssertionError if the requirement is not met.
|
|
331
331
|
|
|
332
332
|
Returns:
|
|
333
333
|
(bool): Whether the installed Python version meets the minimum constraints.
|
|
334
334
|
"""
|
|
335
|
-
return check_version(PYTHON_VERSION, minimum, name="Python
|
|
335
|
+
return check_version(PYTHON_VERSION, minimum, name="Python", hard=hard)
|
|
336
336
|
|
|
337
337
|
|
|
338
338
|
@TryExcept()
|
|
@@ -735,4 +735,5 @@ def cuda_is_available() -> bool:
|
|
|
735
735
|
|
|
736
736
|
|
|
737
737
|
# Define constants
|
|
738
|
+
IS_PYTHON_MINIMUM_3_10 = check_python("3.10", hard=False)
|
|
738
739
|
IS_PYTHON_3_12 = PYTHON_VERSION.startswith("3.12")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.2.
|
|
3
|
+
Version: 8.2.21
|
|
4
4
|
Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
|
5
5
|
Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
6
6
|
Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
@@ -15,6 +15,15 @@ ultralytics.egg-info/dependency_links.txt
|
|
|
15
15
|
ultralytics.egg-info/entry_points.txt
|
|
16
16
|
ultralytics.egg-info/requires.txt
|
|
17
17
|
ultralytics.egg-info/top_level.txt
|
|
18
|
+
ultralytics/../tests/__init__.py
|
|
19
|
+
ultralytics/../tests/conftest.py
|
|
20
|
+
ultralytics/../tests/test_cli.py
|
|
21
|
+
ultralytics/../tests/test_cuda.py
|
|
22
|
+
ultralytics/../tests/test_engine.py
|
|
23
|
+
ultralytics/../tests/test_explorer.py
|
|
24
|
+
ultralytics/../tests/test_exports.py
|
|
25
|
+
ultralytics/../tests/test_integrations.py
|
|
26
|
+
ultralytics/../tests/test_python.py
|
|
18
27
|
ultralytics/assets/bus.jpg
|
|
19
28
|
ultralytics/assets/zidane.jpg
|
|
20
29
|
ultralytics/cfg/__init__.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml
RENAMED
|
File without changes
|
{ultralytics-8.2.20 → ultralytics-8.2.21}/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
|
{ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml
RENAMED
|
File without changes
|
{ultralytics-8.2.20 → ultralytics-8.2.21}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|