dgenerate-ultralytics-headless 8.3.192__tar.gz → 8.3.193__tar.gz

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