dgenerate-ultralytics-headless 8.3.242__tar.gz → 8.3.244__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.
Files changed (304) hide show
  1. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/PKG-INFO +2 -2
  2. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/dgenerate_ultralytics_headless.egg-info/PKG-INFO +2 -2
  3. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/dgenerate_ultralytics_headless.egg-info/requires.txt +1 -1
  4. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/pyproject.toml +1 -1
  5. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/tests/test_engine.py +1 -1
  6. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/__init__.py +1 -1
  7. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +1 -1
  8. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +1 -1
  9. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +1 -1
  10. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +1 -1
  11. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v10/yolov10b.yaml +2 -2
  12. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v10/yolov10l.yaml +2 -2
  13. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v10/yolov10m.yaml +2 -2
  14. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v10/yolov10n.yaml +2 -2
  15. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v10/yolov10s.yaml +2 -2
  16. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v10/yolov10x.yaml +2 -2
  17. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +1 -1
  18. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v6/yolov6.yaml +1 -1
  19. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +1 -1
  20. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v9/yolov9s.yaml +1 -1
  21. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/engine/exporter.py +6 -4
  22. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/engine/model.py +1 -1
  23. dgenerate_ultralytics_headless-8.3.244/ultralytics/utils/callbacks/platform.py +290 -0
  24. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/checks.py +5 -0
  25. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/logger.py +131 -75
  26. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/loss.py +2 -2
  27. dgenerate_ultralytics_headless-8.3.242/ultralytics/utils/callbacks/platform.py +0 -73
  28. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/LICENSE +0 -0
  29. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/README.md +0 -0
  30. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/dgenerate_ultralytics_headless.egg-info/SOURCES.txt +0 -0
  31. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/dgenerate_ultralytics_headless.egg-info/dependency_links.txt +0 -0
  32. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/dgenerate_ultralytics_headless.egg-info/entry_points.txt +0 -0
  33. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/dgenerate_ultralytics_headless.egg-info/top_level.txt +0 -0
  34. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/setup.cfg +0 -0
  35. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/tests/__init__.py +0 -0
  36. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/tests/conftest.py +0 -0
  37. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/tests/test_cli.py +0 -0
  38. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/tests/test_cuda.py +0 -0
  39. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/tests/test_exports.py +0 -0
  40. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/tests/test_integrations.py +0 -0
  41. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/tests/test_python.py +0 -0
  42. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/tests/test_solutions.py +0 -0
  43. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/assets/bus.jpg +0 -0
  44. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/assets/zidane.jpg +0 -0
  45. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/__init__.py +0 -0
  46. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  47. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  48. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  49. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  50. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  51. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  52. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  53. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  54. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  55. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  56. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  57. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  58. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  59. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  60. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/coco.yaml +0 -0
  61. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  62. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  63. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  64. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  65. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  66. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  67. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  68. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/construction-ppe.yaml +0 -0
  69. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  70. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  71. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  72. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  73. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  74. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/kitti.yaml +0 -0
  75. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  76. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  77. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  78. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  79. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/signature.yaml +0 -0
  80. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  81. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/datasets/xView.yaml +0 -0
  82. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/default.yaml +0 -0
  83. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  84. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  85. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  86. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  87. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  88. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  89. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  90. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  91. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  92. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  93. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  94. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  95. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  96. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  97. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  98. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  99. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  100. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  101. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  102. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  103. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  104. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  105. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  106. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  107. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  108. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  109. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  110. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  111. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  112. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  113. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  114. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  115. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  116. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  117. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  118. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  119. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  120. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  121. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  122. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  123. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  124. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  125. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  126. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/data/__init__.py +0 -0
  127. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/data/annotator.py +0 -0
  128. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/data/augment.py +0 -0
  129. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/data/base.py +0 -0
  130. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/data/build.py +0 -0
  131. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/data/converter.py +0 -0
  132. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/data/dataset.py +0 -0
  133. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/data/loaders.py +0 -0
  134. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/data/scripts/download_weights.sh +0 -0
  135. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/data/scripts/get_coco.sh +0 -0
  136. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/data/scripts/get_coco128.sh +0 -0
  137. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  138. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/data/split.py +0 -0
  139. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/data/split_dota.py +0 -0
  140. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/data/utils.py +0 -0
  141. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/engine/__init__.py +0 -0
  142. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/engine/predictor.py +0 -0
  143. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/engine/results.py +0 -0
  144. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/engine/trainer.py +0 -0
  145. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/engine/tuner.py +0 -0
  146. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/engine/validator.py +0 -0
  147. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/hub/__init__.py +0 -0
  148. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/hub/auth.py +0 -0
  149. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/hub/google/__init__.py +0 -0
  150. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/hub/session.py +0 -0
  151. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/hub/utils.py +0 -0
  152. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/__init__.py +0 -0
  153. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/fastsam/__init__.py +0 -0
  154. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/fastsam/model.py +0 -0
  155. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/fastsam/predict.py +0 -0
  156. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/fastsam/utils.py +0 -0
  157. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/fastsam/val.py +0 -0
  158. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/nas/__init__.py +0 -0
  159. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/nas/model.py +0 -0
  160. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/nas/predict.py +0 -0
  161. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/nas/val.py +0 -0
  162. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/rtdetr/__init__.py +0 -0
  163. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/rtdetr/model.py +0 -0
  164. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/rtdetr/predict.py +0 -0
  165. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/rtdetr/train.py +0 -0
  166. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/rtdetr/val.py +0 -0
  167. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/__init__.py +0 -0
  168. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/amg.py +0 -0
  169. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/build.py +0 -0
  170. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/build_sam3.py +0 -0
  171. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/model.py +0 -0
  172. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/modules/__init__.py +0 -0
  173. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/modules/blocks.py +0 -0
  174. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/modules/decoders.py +0 -0
  175. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/modules/encoders.py +0 -0
  176. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  177. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/modules/sam.py +0 -0
  178. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  179. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/modules/transformer.py +0 -0
  180. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/modules/utils.py +0 -0
  181. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/predict.py +0 -0
  182. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/sam3/__init__.py +0 -0
  183. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/sam3/decoder.py +0 -0
  184. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/sam3/encoder.py +0 -0
  185. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/sam3/geometry_encoders.py +0 -0
  186. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/sam3/maskformer_segmentation.py +0 -0
  187. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/sam3/model_misc.py +0 -0
  188. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/sam3/necks.py +0 -0
  189. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/sam3/sam3_image.py +0 -0
  190. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/sam3/text_encoder_ve.py +0 -0
  191. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/sam3/vitdet.py +0 -0
  192. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/sam/sam3/vl_combiner.py +0 -0
  193. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/utils/__init__.py +0 -0
  194. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/utils/loss.py +0 -0
  195. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/utils/ops.py +0 -0
  196. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/__init__.py +0 -0
  197. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/classify/__init__.py +0 -0
  198. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/classify/predict.py +0 -0
  199. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/classify/train.py +0 -0
  200. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/classify/val.py +0 -0
  201. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/detect/__init__.py +0 -0
  202. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/detect/predict.py +0 -0
  203. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/detect/train.py +0 -0
  204. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/detect/val.py +0 -0
  205. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/model.py +0 -0
  206. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/obb/__init__.py +0 -0
  207. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/obb/predict.py +0 -0
  208. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/obb/train.py +0 -0
  209. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/obb/val.py +0 -0
  210. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/pose/__init__.py +0 -0
  211. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/pose/predict.py +0 -0
  212. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/pose/train.py +0 -0
  213. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/pose/val.py +0 -0
  214. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/segment/__init__.py +0 -0
  215. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/segment/predict.py +0 -0
  216. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/segment/train.py +0 -0
  217. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/segment/val.py +0 -0
  218. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/world/__init__.py +0 -0
  219. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/world/train.py +0 -0
  220. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/world/train_world.py +0 -0
  221. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  222. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  223. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/yoloe/train.py +0 -0
  224. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  225. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/models/yolo/yoloe/val.py +0 -0
  226. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/nn/__init__.py +0 -0
  227. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/nn/autobackend.py +0 -0
  228. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/nn/modules/__init__.py +0 -0
  229. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/nn/modules/activation.py +0 -0
  230. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/nn/modules/block.py +0 -0
  231. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/nn/modules/conv.py +0 -0
  232. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/nn/modules/head.py +0 -0
  233. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/nn/modules/transformer.py +0 -0
  234. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/nn/modules/utils.py +0 -0
  235. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/nn/tasks.py +0 -0
  236. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/nn/text_model.py +0 -0
  237. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/py.typed +0 -0
  238. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/__init__.py +0 -0
  239. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/ai_gym.py +0 -0
  240. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/analytics.py +0 -0
  241. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/config.py +0 -0
  242. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/distance_calculation.py +0 -0
  243. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/heatmap.py +0 -0
  244. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/instance_segmentation.py +0 -0
  245. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/object_blurrer.py +0 -0
  246. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/object_counter.py +0 -0
  247. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/object_cropper.py +0 -0
  248. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/parking_management.py +0 -0
  249. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/queue_management.py +0 -0
  250. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/region_counter.py +0 -0
  251. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/security_alarm.py +0 -0
  252. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/similarity_search.py +0 -0
  253. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/solutions.py +0 -0
  254. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/speed_estimation.py +0 -0
  255. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/streamlit_inference.py +0 -0
  256. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/templates/similarity-search.html +0 -0
  257. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/trackzone.py +0 -0
  258. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/solutions/vision_eye.py +0 -0
  259. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/trackers/__init__.py +0 -0
  260. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/trackers/basetrack.py +0 -0
  261. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/trackers/bot_sort.py +0 -0
  262. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/trackers/byte_tracker.py +0 -0
  263. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/trackers/track.py +0 -0
  264. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/trackers/utils/__init__.py +0 -0
  265. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/trackers/utils/gmc.py +0 -0
  266. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  267. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/trackers/utils/matching.py +0 -0
  268. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/__init__.py +0 -0
  269. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/autobatch.py +0 -0
  270. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/autodevice.py +0 -0
  271. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/benchmarks.py +0 -0
  272. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/callbacks/__init__.py +0 -0
  273. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/callbacks/base.py +0 -0
  274. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/callbacks/clearml.py +0 -0
  275. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/callbacks/comet.py +0 -0
  276. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/callbacks/dvc.py +0 -0
  277. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/callbacks/hub.py +0 -0
  278. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/callbacks/mlflow.py +0 -0
  279. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/callbacks/neptune.py +0 -0
  280. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/callbacks/raytune.py +0 -0
  281. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  282. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/callbacks/wb.py +0 -0
  283. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/cpu.py +0 -0
  284. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/dist.py +0 -0
  285. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/downloads.py +0 -0
  286. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/errors.py +0 -0
  287. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/events.py +0 -0
  288. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/export/__init__.py +0 -0
  289. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/export/engine.py +0 -0
  290. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/export/imx.py +0 -0
  291. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/export/tensorflow.py +0 -0
  292. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/files.py +0 -0
  293. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/git.py +0 -0
  294. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/instance.py +0 -0
  295. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/metrics.py +0 -0
  296. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/nms.py +0 -0
  297. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/ops.py +0 -0
  298. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/patches.py +0 -0
  299. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/plotting.py +0 -0
  300. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/tal.py +0 -0
  301. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/torch_utils.py +0 -0
  302. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/tqdm.py +0 -0
  303. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/triton.py +0 -0
  304. {dgenerate_ultralytics_headless-8.3.242 → dgenerate_ultralytics_headless-8.3.244}/ultralytics/utils/tuner.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dgenerate-ultralytics-headless
3
- Version: 8.3.242
3
+ Version: 8.3.244
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>
@@ -50,7 +50,7 @@ Requires-Dist: ipython; extra == "dev"
50
50
  Requires-Dist: pytest; extra == "dev"
51
51
  Requires-Dist: pytest-cov; extra == "dev"
52
52
  Requires-Dist: coverage[toml]; extra == "dev"
53
- Requires-Dist: zensical>=0.0.9; python_version >= "3.10" and extra == "dev"
53
+ Requires-Dist: zensical>=0.0.15; python_version >= "3.10" and extra == "dev"
54
54
  Requires-Dist: mkdocs-ultralytics-plugin>=0.2.4; extra == "dev"
55
55
  Requires-Dist: minijinja>=2.0.0; extra == "dev"
56
56
  Provides-Extra: export
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dgenerate-ultralytics-headless
3
- Version: 8.3.242
3
+ Version: 8.3.244
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>
@@ -50,7 +50,7 @@ Requires-Dist: ipython; extra == "dev"
50
50
  Requires-Dist: pytest; extra == "dev"
51
51
  Requires-Dist: pytest-cov; extra == "dev"
52
52
  Requires-Dist: coverage[toml]; extra == "dev"
53
- Requires-Dist: zensical>=0.0.9; python_version >= "3.10" and extra == "dev"
53
+ Requires-Dist: zensical>=0.0.15; python_version >= "3.10" and extra == "dev"
54
54
  Requires-Dist: mkdocs-ultralytics-plugin>=0.2.4; extra == "dev"
55
55
  Requires-Dist: minijinja>=2.0.0; extra == "dev"
56
56
  Provides-Extra: export
@@ -23,7 +23,7 @@ mkdocs-ultralytics-plugin>=0.2.4
23
23
  minijinja>=2.0.0
24
24
 
25
25
  [dev:python_version >= "3.10"]
26
- zensical>=0.0.9
26
+ zensical>=0.0.15
27
27
 
28
28
  [export]
29
29
  numpy<2.0.0
@@ -83,7 +83,7 @@ dev = [
83
83
  "pytest",
84
84
  "pytest-cov",
85
85
  "coverage[toml]",
86
- "zensical>=0.0.9; python_version >= '3.10'",
86
+ "zensical>=0.0.15; python_version >= '3.10'",
87
87
  "mkdocs-ultralytics-plugin>=0.2.4", # for meta descriptions and images, dates and authors
88
88
  "minijinja>=2.0.0", # render docs macros without mkdocs-macros-plugin
89
89
  ]
@@ -13,7 +13,7 @@ from ultralytics.models.yolo import classify, detect, segment
13
13
  from ultralytics.utils import ASSETS, DEFAULT_CFG, WEIGHTS_DIR
14
14
 
15
15
 
16
- def test_func(*args):
16
+ def test_func(*args, **kwargs):
17
17
  """Test function callback for evaluating YOLO model performance metrics."""
18
18
  print("callback test passed")
19
19
 
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.242"
3
+ __version__ = "8.3.244"
4
4
 
5
5
  import importlib
6
6
  import os
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Parameters
8
8
  nc: 80 # number of classes
9
- scales: # model compound scaling constants, i.e. 'model=yolov8n-cls.yaml' will call yolov8-cls.yaml with scale 'n'
9
+ scales: # model compound scaling constants, i.e. 'model=rtdetr-l.yaml' will call rtdetr-l.yaml with scale 'l'
10
10
  # [depth, width, max_channels]
11
11
  l: [1.00, 1.00, 1024]
12
12
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Parameters
8
8
  nc: 80 # number of classes
9
- scales: # model compound scaling constants, i.e. 'model=yolov8n-cls.yaml' will call yolov8-cls.yaml with scale 'n'
9
+ scales: # model compound scaling constants, i.e. 'model=rtdetr-resnet101.yaml' will call rtdetr-resnet101.yaml with scale 'l'
10
10
  # [depth, width, max_channels]
11
11
  l: [1.00, 1.00, 1024]
12
12
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Parameters
8
8
  nc: 80 # number of classes
9
- scales: # model compound scaling constants, i.e. 'model=yolov8n-cls.yaml' will call yolov8-cls.yaml with scale 'n'
9
+ scales: # model compound scaling constants, i.e. 'model=rtdetr-resnet50.yaml' will call rtdetr-resnet50.yaml with scale 'l'
10
10
  # [depth, width, max_channels]
11
11
  l: [1.00, 1.00, 1024]
12
12
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Parameters
8
8
  nc: 80 # number of classes
9
- scales: # model compound scaling constants, i.e. 'model=yolov8n-cls.yaml' will call yolov8-cls.yaml with scale 'n'
9
+ scales: # model compound scaling constants, i.e. 'model=rtdetr-x.yaml' will call rtdetr-x.yaml with scale 'x'
10
10
  # [depth, width, max_channels]
11
11
  x: [1.00, 1.00, 2048]
12
12
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Parameters
8
8
  nc: 80 # number of classes
9
- scales: # model compound scaling constants, i.e. 'model=yolov10n.yaml' will call yolov10.yaml with scale 'n'
9
+ scales: # model compound scaling constants, i.e. 'model=yolov10n.yaml' uses the 'n' scale
10
10
  # [depth, width, max_channels]
11
11
  b: [0.67, 1.00, 512]
12
12
 
@@ -24,7 +24,7 @@ backbone:
24
24
  - [-1, 1, SPPF, [1024, 5]] # 9
25
25
  - [-1, 1, PSA, [1024]] # 10
26
26
 
27
- # YOLOv10.0n head
27
+ # YOLOv10 head
28
28
  head:
29
29
  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
30
30
  - [[-1, 6], 1, Concat, [1]] # cat backbone P4
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Parameters
8
8
  nc: 80 # number of classes
9
- scales: # model compound scaling constants, i.e. 'model=yolov10n.yaml' will call yolov10.yaml with scale 'n'
9
+ scales: # model compound scaling constants, i.e. 'model=yolov10n.yaml' uses the 'n' scale
10
10
  # [depth, width, max_channels]
11
11
  l: [1.00, 1.00, 512]
12
12
 
@@ -24,7 +24,7 @@ backbone:
24
24
  - [-1, 1, SPPF, [1024, 5]] # 9
25
25
  - [-1, 1, PSA, [1024]] # 10
26
26
 
27
- # YOLOv10.0n head
27
+ # YOLOv10 head
28
28
  head:
29
29
  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
30
30
  - [[-1, 6], 1, Concat, [1]] # cat backbone P4
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Parameters
8
8
  nc: 80 # number of classes
9
- scales: # model compound scaling constants, i.e. 'model=yolov10n.yaml' will call yolov10.yaml with scale 'n'
9
+ scales: # model compound scaling constants, i.e. 'model=yolov10n.yaml' uses the 'n' scale
10
10
  # [depth, width, max_channels]
11
11
  m: [0.67, 0.75, 768]
12
12
 
@@ -24,7 +24,7 @@ backbone:
24
24
  - [-1, 1, SPPF, [1024, 5]] # 9
25
25
  - [-1, 1, PSA, [1024]] # 10
26
26
 
27
- # YOLOv10.0n head
27
+ # YOLOv10 head
28
28
  head:
29
29
  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
30
30
  - [[-1, 6], 1, Concat, [1]] # cat backbone P4
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Parameters
8
8
  nc: 80 # number of classes
9
- scales: # model compound scaling constants, i.e. 'model=yolov10n.yaml' will call yolov10.yaml with scale 'n'
9
+ scales: # model compound scaling constants, i.e. 'model=yolov10n.yaml' uses the 'n' scale
10
10
  # [depth, width, max_channels]
11
11
  n: [0.33, 0.25, 1024]
12
12
 
@@ -24,7 +24,7 @@ backbone:
24
24
  - [-1, 1, SPPF, [1024, 5]] # 9
25
25
  - [-1, 1, PSA, [1024]] # 10
26
26
 
27
- # YOLOv10.0n head
27
+ # YOLOv10 head
28
28
  head:
29
29
  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
30
30
  - [[-1, 6], 1, Concat, [1]] # cat backbone P4
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Parameters
8
8
  nc: 80 # number of classes
9
- scales: # model compound scaling constants, i.e. 'model=yolov10n.yaml' will call yolov10.yaml with scale 'n'
9
+ scales: # model compound scaling constants, i.e. 'model=yolov10n.yaml' uses the 'n' scale
10
10
  # [depth, width, max_channels]
11
11
  s: [0.33, 0.50, 1024]
12
12
 
@@ -24,7 +24,7 @@ backbone:
24
24
  - [-1, 1, SPPF, [1024, 5]] # 9
25
25
  - [-1, 1, PSA, [1024]] # 10
26
26
 
27
- # YOLOv10.0n head
27
+ # YOLOv10 head
28
28
  head:
29
29
  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
30
30
  - [[-1, 6], 1, Concat, [1]] # cat backbone P4
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Parameters
8
8
  nc: 80 # number of classes
9
- scales: # model compound scaling constants, i.e. 'model=yolov10n.yaml' will call yolov10.yaml with scale 'n'
9
+ scales: # model compound scaling constants, i.e. 'model=yolov10n.yaml' uses the 'n' scale
10
10
  # [depth, width, max_channels]
11
11
  x: [1.00, 1.25, 512]
12
12
 
@@ -24,7 +24,7 @@ backbone:
24
24
  - [-1, 1, SPPF, [1024, 5]] # 9
25
25
  - [-1, 1, PSA, [1024]] # 10
26
26
 
27
- # YOLOv10.0n head
27
+ # YOLOv10 head
28
28
  head:
29
29
  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
30
30
  - [[-1, 6], 1, Concat, [1]] # cat backbone P4
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- # Ultralytics YOLOv3-tiiny object detection model with P4/16 - P5/32 outputs
3
+ # Ultralytics YOLOv3-tiny object detection model with P4/16 - P5/32 outputs
4
4
  # Model docs: https://docs.ultralytics.com/models/yolov3
5
5
  # Task docs: https://docs.ultralytics.com/tasks/detect
6
6
 
@@ -7,7 +7,7 @@
7
7
  # Parameters
8
8
  nc: 80 # number of classes
9
9
  activation: torch.nn.ReLU() # (optional) model default activation function
10
- scales: # model compound scaling constants, i.e. 'model=yolov6n.yaml' will call yolov8.yaml with scale 'n'
10
+ scales: # model compound scaling constants, i.e. 'model=yolov6n.yaml' will call yolov6.yaml with scale 'n'
11
11
  # [depth, width, max_channels]
12
12
  n: [0.33, 0.25, 1024]
13
13
  s: [0.33, 0.50, 1024]
@@ -56,4 +56,4 @@ head:
56
56
  - [[-1, 11], 1, Concat, [1]] # cat head P6
57
57
  - [-1, 3, C2, [1024, False]] # 29 (P6/64-xlarge)
58
58
 
59
- - [[20, 23, 26, 29], 1, Segment, [nc, 32, 256]] # Pose(P3, P4, P5, P6)
59
+ - [[20, 23, 26, 29], 1, Segment, [nc, 32, 256]] # Segment(P3, P4, P5, P6)
@@ -38,4 +38,4 @@ head:
38
38
  - [[-1, 9], 1, Concat, [1]] # cat head P5
39
39
  - [-1, 1, RepNCSPELAN4, [256, 256, 128, 3]] # 21 (P5/32-large)
40
40
 
41
- - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4 P5)
41
+ - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)
@@ -87,6 +87,7 @@ from ultralytics.utils import (
87
87
  IS_COLAB,
88
88
  IS_DEBIAN_BOOKWORM,
89
89
  IS_DEBIAN_TRIXIE,
90
+ IS_DOCKER,
90
91
  IS_JETSON,
91
92
  IS_RASPBERRYPI,
92
93
  IS_UBUNTU,
@@ -1187,10 +1188,11 @@ class Exporter:
1187
1188
  """
1188
1189
  LOGGER.info(f"\n{prefix} starting export with ExecuTorch...")
1189
1190
  assert TORCH_2_9, f"ExecuTorch export requires torch>=2.9.0 but torch=={TORCH_VERSION} is installed"
1190
- # TorchAO release compatibility table bug https://github.com/pytorch/ao/issues/2919
1191
- # Setuptools bug: https://github.com/pypa/setuptools/issues/4483
1192
- check_requirements("setuptools<71.0.0") # Setuptools bug: https://github.com/pypa/setuptools/issues/4483
1193
- check_requirements(("executorch==1.0.1", "flatbuffers"))
1191
+
1192
+ # BUG executorch build on arm64 Docker requires packaging>=22.0 https://github.com/pypa/setuptools/issues/4483
1193
+ if LINUX and ARM64 and IS_DOCKER:
1194
+ check_requirements("packaging>=22.0")
1195
+ check_requirements("executorch==1.0.1", "flatbuffers")
1194
1196
  # Pin numpy to avoid coremltools errors with numpy>=2.4.0, must be separate
1195
1197
  check_requirements("numpy<=2.3.5")
1196
1198
 
@@ -523,7 +523,7 @@ class Model(torch.nn.Module):
523
523
  args = {**self.overrides, **custom, **kwargs} # highest priority args on the right
524
524
  prompts = args.pop("prompts", None) # for SAM-type models
525
525
 
526
- if not self.predictor:
526
+ if not self.predictor or self.predictor.args.device != args.get("device", self.predictor.args.device):
527
527
  self.predictor = (predictor or self._smart_load("predictor"))(overrides=args, _callbacks=self.callbacks)
528
528
  self.predictor.setup_model(model=self.model, verbose=is_cli)
529
529
  else: # only update args if predictor is already setup
@@ -0,0 +1,290 @@
1
+ # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
+
3
+ import os
4
+ import platform
5
+ import socket
6
+ import sys
7
+ from concurrent.futures import ThreadPoolExecutor
8
+ from pathlib import Path
9
+ from time import time
10
+
11
+ from ultralytics.utils import ENVIRONMENT, GIT, LOGGER, PYTHON_VERSION, RANK, SETTINGS, TESTS_RUNNING
12
+
13
+ _last_upload = 0 # Rate limit model uploads
14
+ _console_logger = None # Global console logger instance
15
+ _system_logger = None # Cached system logger instance
16
+
17
+ try:
18
+ assert not TESTS_RUNNING # do not log pytest
19
+ assert SETTINGS.get("platform", False) is True or os.getenv("ULTRALYTICS_API_KEY") or SETTINGS.get("api_key")
20
+ _api_key = os.getenv("ULTRALYTICS_API_KEY") or SETTINGS.get("api_key")
21
+ assert _api_key # verify API key is present
22
+
23
+ import requests
24
+
25
+ from ultralytics.utils.logger import ConsoleLogger, SystemLogger
26
+ from ultralytics.utils.torch_utils import model_info_for_loggers
27
+
28
+ _executor = ThreadPoolExecutor(max_workers=10) # Bounded thread pool for async operations
29
+
30
+ except (AssertionError, ImportError):
31
+ _api_key = None
32
+
33
+
34
+ def _send(event, data, project, name):
35
+ """Send event to Platform endpoint."""
36
+ try:
37
+ requests.post(
38
+ "https://alpha.ultralytics.com/api/webhooks/training/metrics",
39
+ json={"event": event, "project": project, "name": name, "data": data},
40
+ headers={"Authorization": f"Bearer {_api_key}"},
41
+ timeout=10,
42
+ ).raise_for_status()
43
+ except Exception as e:
44
+ LOGGER.debug(f"Platform: Failed to send {event}: {e}")
45
+
46
+
47
+ def _send_async(event, data, project, name):
48
+ """Send event asynchronously using bounded thread pool."""
49
+ _executor.submit(_send, event, data, project, name)
50
+
51
+
52
+ def _upload_model(model_path, project, name):
53
+ """Upload model checkpoint to Platform via signed URL."""
54
+ try:
55
+ model_path = Path(model_path)
56
+ if not model_path.exists():
57
+ return None
58
+
59
+ # Get signed upload URL
60
+ response = requests.post(
61
+ "https://alpha.ultralytics.com/api/webhooks/models/upload",
62
+ json={"project": project, "name": name, "filename": model_path.name},
63
+ headers={"Authorization": f"Bearer {_api_key}"},
64
+ timeout=10,
65
+ )
66
+ response.raise_for_status()
67
+ data = response.json()
68
+
69
+ # Upload to GCS
70
+ with open(model_path, "rb") as f:
71
+ requests.put(
72
+ data["uploadUrl"],
73
+ data=f,
74
+ headers={"Content-Type": "application/octet-stream"},
75
+ timeout=600, # 10 min timeout for large models
76
+ ).raise_for_status()
77
+
78
+ LOGGER.info(f"Platform: Model uploaded to '{project}'")
79
+ return data.get("gcsPath")
80
+
81
+ except Exception as e:
82
+ LOGGER.debug(f"Platform: Failed to upload model: {e}")
83
+ return None
84
+
85
+
86
+ def _upload_model_async(model_path, project, name):
87
+ """Upload model asynchronously using bounded thread pool."""
88
+ _executor.submit(_upload_model, model_path, project, name)
89
+
90
+
91
+ def _get_environment_info():
92
+ """Collect comprehensive environment info using existing ultralytics utilities."""
93
+ import torch
94
+
95
+ from ultralytics import __version__
96
+ from ultralytics.utils.torch_utils import get_cpu_info, get_gpu_info
97
+
98
+ env = {
99
+ "ultralyticsVersion": __version__,
100
+ "hostname": socket.gethostname(),
101
+ "os": platform.platform(),
102
+ "environment": ENVIRONMENT,
103
+ "pythonVersion": PYTHON_VERSION,
104
+ "pythonExecutable": sys.executable,
105
+ "cpuCount": os.cpu_count() or 0,
106
+ "cpu": get_cpu_info(),
107
+ "command": " ".join(sys.argv),
108
+ }
109
+
110
+ # Git info using cached GIT singleton (no subprocess calls)
111
+ try:
112
+ if GIT.is_repo:
113
+ if GIT.origin:
114
+ env["gitRepository"] = GIT.origin
115
+ if GIT.branch:
116
+ env["gitBranch"] = GIT.branch
117
+ if GIT.commit:
118
+ env["gitCommit"] = GIT.commit[:12] # Short hash
119
+ except Exception:
120
+ pass
121
+
122
+ # GPU info
123
+ try:
124
+ if torch.cuda.is_available():
125
+ env["gpuCount"] = torch.cuda.device_count()
126
+ env["gpuType"] = get_gpu_info(0) if torch.cuda.device_count() > 0 else None
127
+ except Exception:
128
+ pass
129
+
130
+ return env
131
+
132
+
133
+ def on_pretrain_routine_start(trainer):
134
+ """Initialize Platform logging at training start."""
135
+ global _console_logger, _last_upload
136
+
137
+ if RANK not in {-1, 0} or not trainer.args.project:
138
+ return
139
+
140
+ # Initialize upload timer to now so first checkpoint waits 15 min from training start
141
+ _last_upload = time()
142
+
143
+ project, name = str(trainer.args.project), str(trainer.args.name or "train")
144
+ LOGGER.info(f"Platform: Streaming to project '{project}' as '{name}'")
145
+
146
+ # Create callback to send console output to Platform
147
+ def send_console_output(content, line_count, chunk_id):
148
+ """Send batched console output to Platform webhook."""
149
+ _send_async("console_output", {"chunkId": chunk_id, "content": content, "lineCount": line_count}, project, name)
150
+
151
+ # Start console capture with batching (5 lines or 5 seconds)
152
+ _console_logger = ConsoleLogger(batch_size=5, flush_interval=5.0, on_flush=send_console_output)
153
+ _console_logger.start_capture()
154
+
155
+ # Gather model info for richer metadata
156
+ model_info = {}
157
+ try:
158
+ info = model_info_for_loggers(trainer)
159
+ model_info = {
160
+ "parameters": info.get("model/parameters", 0),
161
+ "gflops": info.get("model/GFLOPs", 0),
162
+ "classes": getattr(trainer.model, "yaml", {}).get("nc", 0), # number of classes
163
+ }
164
+ except Exception:
165
+ pass
166
+
167
+ # Collect environment info (W&B-style metadata)
168
+ environment = _get_environment_info()
169
+
170
+ _send_async(
171
+ "training_started",
172
+ {
173
+ "trainArgs": {k: str(v) for k, v in vars(trainer.args).items()},
174
+ "epochs": trainer.epochs,
175
+ "device": str(trainer.device),
176
+ "modelInfo": model_info,
177
+ "environment": environment,
178
+ },
179
+ project,
180
+ name,
181
+ )
182
+
183
+
184
+ def on_fit_epoch_end(trainer):
185
+ """Log training and system metrics at epoch end."""
186
+ global _system_logger
187
+
188
+ if RANK not in {-1, 0} or not trainer.args.project:
189
+ return
190
+
191
+ project, name = str(trainer.args.project), str(trainer.args.name or "train")
192
+ metrics = {**trainer.label_loss_items(trainer.tloss, prefix="train"), **trainer.metrics}
193
+
194
+ if trainer.optimizer and trainer.optimizer.param_groups:
195
+ metrics["lr"] = trainer.optimizer.param_groups[0]["lr"]
196
+ if trainer.epoch == 0:
197
+ try:
198
+ metrics.update(model_info_for_loggers(trainer))
199
+ except Exception:
200
+ pass
201
+
202
+ # Get system metrics (cache SystemLogger for efficiency)
203
+ system = {}
204
+ try:
205
+ if _system_logger is None:
206
+ _system_logger = SystemLogger()
207
+ system = _system_logger.get_metrics(rates=True)
208
+ except Exception:
209
+ pass
210
+
211
+ _send_async(
212
+ "epoch_end",
213
+ {
214
+ "epoch": trainer.epoch,
215
+ "metrics": metrics,
216
+ "system": system,
217
+ "fitness": trainer.fitness,
218
+ "best_fitness": trainer.best_fitness,
219
+ },
220
+ project,
221
+ name,
222
+ )
223
+
224
+
225
+ def on_model_save(trainer):
226
+ """Upload model checkpoint (rate limited to every 15 min)."""
227
+ global _last_upload
228
+
229
+ if RANK not in {-1, 0} or not trainer.args.project:
230
+ return
231
+
232
+ # Rate limit to every 15 minutes (900 seconds)
233
+ if time() - _last_upload < 900:
234
+ return
235
+
236
+ model_path = trainer.best if trainer.best and Path(trainer.best).exists() else trainer.last
237
+ if not model_path:
238
+ return
239
+
240
+ project, name = str(trainer.args.project), str(trainer.args.name or "train")
241
+ _upload_model_async(model_path, project, name)
242
+ _last_upload = time()
243
+
244
+
245
+ def on_train_end(trainer):
246
+ """Log final results and upload best model."""
247
+ global _console_logger
248
+
249
+ if RANK not in {-1, 0} or not trainer.args.project:
250
+ return
251
+
252
+ project, name = str(trainer.args.project), str(trainer.args.name or "train")
253
+
254
+ # Stop console capture and flush remaining output
255
+ if _console_logger:
256
+ _console_logger.stop_capture()
257
+ _console_logger = None
258
+
259
+ # Upload best model (blocking to ensure it completes)
260
+ model_path = None
261
+ if trainer.best and Path(trainer.best).exists():
262
+ model_path = _upload_model(trainer.best, project, name)
263
+
264
+ # Send training complete
265
+ _send(
266
+ "training_complete",
267
+ {
268
+ "results": {
269
+ "metrics": {**trainer.metrics, "fitness": trainer.fitness},
270
+ "bestEpoch": getattr(trainer, "best_epoch", trainer.epoch),
271
+ "bestFitness": trainer.best_fitness,
272
+ "modelPath": model_path or str(trainer.best) if trainer.best else None,
273
+ }
274
+ },
275
+ project,
276
+ name,
277
+ )
278
+ LOGGER.info(f"Platform: Training complete, results uploaded to '{project}'")
279
+
280
+
281
+ callbacks = (
282
+ {
283
+ "on_pretrain_routine_start": on_pretrain_routine_start,
284
+ "on_fit_epoch_end": on_fit_epoch_end,
285
+ "on_model_save": on_model_save,
286
+ "on_train_end": on_train_end,
287
+ }
288
+ if _api_key
289
+ else {}
290
+ )
@@ -418,6 +418,11 @@ def check_requirements(requirements=ROOT.parent / "requirements.txt", exclude=()
418
418
  >>> check_requirements([("onnxruntime", "onnxruntime-gpu"), "numpy"])
419
419
  """
420
420
  prefix = colorstr("red", "bold", "requirements:")
421
+
422
+ if os.environ.get("ULTRALYTICS_SKIP_REQUIREMENTS_CHECKS", "0") == "1":
423
+ LOGGER.info(f"{prefix} ULTRALYTICS_SKIP_REQUIREMENTS_CHECKS=1 detected, skipping requirements check.")
424
+ return True
425
+
421
426
  if isinstance(requirements, Path): # requirements.txt file
422
427
  file = requirements.resolve()
423
428
  assert file.exists(), f"{prefix} {file} not found, check failed."