ultralytics 8.3.203__tar.gz → 8.3.204__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 (288) hide show
  1. {ultralytics-8.3.203 → ultralytics-8.3.204}/PKG-INFO +21 -21
  2. {ultralytics-8.3.203 → ultralytics-8.3.204}/README.md +20 -20
  3. {ultralytics-8.3.203 → ultralytics-8.3.204}/pyproject.toml +0 -3
  4. {ultralytics-8.3.203 → ultralytics-8.3.204}/tests/test_cli.py +1 -1
  5. {ultralytics-8.3.203 → ultralytics-8.3.204}/tests/test_cuda.py +4 -1
  6. {ultralytics-8.3.203 → ultralytics-8.3.204}/tests/test_exports.py +2 -2
  7. {ultralytics-8.3.203 → ultralytics-8.3.204}/tests/test_python.py +10 -1
  8. {ultralytics-8.3.203 → ultralytics-8.3.204}/tests/test_solutions.py +13 -11
  9. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/__init__.py +1 -1
  10. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/data/utils.py +5 -0
  11. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/engine/exporter.py +17 -9
  12. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/engine/trainer.py +4 -8
  13. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/engine/validator.py +1 -1
  14. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/sam/modules/sam.py +1 -1
  15. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/sam/predict.py +9 -5
  16. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/classify/train.py +2 -2
  17. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/classify/val.py +2 -2
  18. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/detect/train.py +1 -1
  19. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/detect/val.py +1 -1
  20. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/model.py +1 -0
  21. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/world/train.py +3 -2
  22. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/yoloe/train.py +0 -13
  23. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/nn/autobackend.py +1 -1
  24. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/similarity_search.py +3 -2
  25. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/streamlit_inference.py +2 -3
  26. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/metrics.py +3 -3
  27. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/torch_utils.py +2 -19
  28. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics.egg-info/PKG-INFO +21 -21
  29. {ultralytics-8.3.203 → ultralytics-8.3.204}/LICENSE +0 -0
  30. {ultralytics-8.3.203 → ultralytics-8.3.204}/setup.cfg +0 -0
  31. {ultralytics-8.3.203 → ultralytics-8.3.204}/tests/__init__.py +0 -0
  32. {ultralytics-8.3.203 → ultralytics-8.3.204}/tests/conftest.py +0 -0
  33. {ultralytics-8.3.203 → ultralytics-8.3.204}/tests/test_engine.py +0 -0
  34. {ultralytics-8.3.203 → ultralytics-8.3.204}/tests/test_integrations.py +0 -0
  35. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/assets/bus.jpg +0 -0
  36. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/assets/zidane.jpg +0 -0
  37. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/__init__.py +0 -0
  38. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  39. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  40. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  41. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  42. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  43. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  44. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  45. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  46. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  47. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  48. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  49. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  50. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  51. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  52. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco.yaml +0 -0
  53. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  54. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  55. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  56. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  57. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  58. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  59. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  60. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/construction-ppe.yaml +0 -0
  61. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  62. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  63. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  64. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  65. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  66. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  67. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  68. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  69. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  70. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/signature.yaml +0 -0
  71. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  72. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/datasets/xView.yaml +0 -0
  73. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/default.yaml +0 -0
  74. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  75. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  76. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  77. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  78. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  79. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  80. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  81. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  82. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  83. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  84. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  85. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  86. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  87. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  88. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  89. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  90. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  91. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  92. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  93. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  94. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  95. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  96. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  97. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  98. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  99. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  100. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  101. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  102. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  103. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  104. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  105. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  106. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  107. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  108. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  109. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  110. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  111. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  112. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  113. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  114. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  115. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  116. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  117. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  118. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  119. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  120. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  121. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  122. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  123. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  124. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  125. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  126. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  127. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  128. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  129. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  130. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  131. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/data/__init__.py +0 -0
  132. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/data/annotator.py +0 -0
  133. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/data/augment.py +0 -0
  134. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/data/base.py +0 -0
  135. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/data/build.py +0 -0
  136. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/data/converter.py +0 -0
  137. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/data/dataset.py +0 -0
  138. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/data/loaders.py +0 -0
  139. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/data/scripts/download_weights.sh +0 -0
  140. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/data/scripts/get_coco.sh +0 -0
  141. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/data/scripts/get_coco128.sh +0 -0
  142. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  143. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/data/split.py +0 -0
  144. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/data/split_dota.py +0 -0
  145. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/engine/__init__.py +0 -0
  146. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/engine/model.py +0 -0
  147. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/engine/predictor.py +0 -0
  148. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/engine/results.py +0 -0
  149. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/engine/tuner.py +0 -0
  150. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/hub/__init__.py +0 -0
  151. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/hub/auth.py +0 -0
  152. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/hub/google/__init__.py +0 -0
  153. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/hub/session.py +0 -0
  154. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/hub/utils.py +0 -0
  155. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/__init__.py +0 -0
  156. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/fastsam/__init__.py +0 -0
  157. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/fastsam/model.py +0 -0
  158. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/fastsam/predict.py +0 -0
  159. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/fastsam/utils.py +0 -0
  160. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/fastsam/val.py +0 -0
  161. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/nas/__init__.py +0 -0
  162. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/nas/model.py +0 -0
  163. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/nas/predict.py +0 -0
  164. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/nas/val.py +0 -0
  165. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/rtdetr/__init__.py +0 -0
  166. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/rtdetr/model.py +0 -0
  167. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/rtdetr/predict.py +0 -0
  168. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/rtdetr/train.py +0 -0
  169. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/rtdetr/val.py +0 -0
  170. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/sam/__init__.py +0 -0
  171. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/sam/amg.py +0 -0
  172. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/sam/build.py +0 -0
  173. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/sam/model.py +0 -0
  174. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/sam/modules/__init__.py +0 -0
  175. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/sam/modules/blocks.py +0 -0
  176. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/sam/modules/decoders.py +0 -0
  177. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/sam/modules/encoders.py +0 -0
  178. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  179. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  180. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/sam/modules/transformer.py +0 -0
  181. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/sam/modules/utils.py +0 -0
  182. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/utils/__init__.py +0 -0
  183. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/utils/loss.py +0 -0
  184. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/utils/ops.py +0 -0
  185. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/__init__.py +0 -0
  186. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/classify/__init__.py +0 -0
  187. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/classify/predict.py +0 -0
  188. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/detect/__init__.py +0 -0
  189. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/detect/predict.py +0 -0
  190. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/obb/__init__.py +0 -0
  191. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/obb/predict.py +0 -0
  192. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/obb/train.py +0 -0
  193. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/obb/val.py +0 -0
  194. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/pose/__init__.py +0 -0
  195. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/pose/predict.py +0 -0
  196. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/pose/train.py +0 -0
  197. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/pose/val.py +0 -0
  198. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/segment/__init__.py +0 -0
  199. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/segment/predict.py +0 -0
  200. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/segment/train.py +0 -0
  201. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/segment/val.py +0 -0
  202. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/world/__init__.py +0 -0
  203. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/world/train_world.py +0 -0
  204. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  205. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  206. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  207. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/models/yolo/yoloe/val.py +0 -0
  208. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/nn/__init__.py +0 -0
  209. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/nn/modules/__init__.py +0 -0
  210. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/nn/modules/activation.py +0 -0
  211. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/nn/modules/block.py +0 -0
  212. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/nn/modules/conv.py +0 -0
  213. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/nn/modules/head.py +0 -0
  214. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/nn/modules/transformer.py +0 -0
  215. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/nn/modules/utils.py +0 -0
  216. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/nn/tasks.py +0 -0
  217. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/nn/text_model.py +0 -0
  218. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/py.typed +0 -0
  219. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/__init__.py +0 -0
  220. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/ai_gym.py +0 -0
  221. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/analytics.py +0 -0
  222. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/config.py +0 -0
  223. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/distance_calculation.py +0 -0
  224. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/heatmap.py +0 -0
  225. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/instance_segmentation.py +0 -0
  226. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/object_blurrer.py +0 -0
  227. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/object_counter.py +0 -0
  228. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/object_cropper.py +0 -0
  229. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/parking_management.py +0 -0
  230. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/queue_management.py +0 -0
  231. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/region_counter.py +0 -0
  232. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/security_alarm.py +0 -0
  233. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/solutions.py +0 -0
  234. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/speed_estimation.py +0 -0
  235. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/templates/similarity-search.html +0 -0
  236. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/trackzone.py +0 -0
  237. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/solutions/vision_eye.py +0 -0
  238. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/trackers/__init__.py +0 -0
  239. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/trackers/basetrack.py +0 -0
  240. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/trackers/bot_sort.py +0 -0
  241. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/trackers/byte_tracker.py +0 -0
  242. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/trackers/track.py +0 -0
  243. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/trackers/utils/__init__.py +0 -0
  244. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/trackers/utils/gmc.py +0 -0
  245. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  246. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/trackers/utils/matching.py +0 -0
  247. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/__init__.py +0 -0
  248. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/autobatch.py +0 -0
  249. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/autodevice.py +0 -0
  250. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/benchmarks.py +0 -0
  251. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/callbacks/__init__.py +0 -0
  252. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/callbacks/base.py +0 -0
  253. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/callbacks/clearml.py +0 -0
  254. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/callbacks/comet.py +0 -0
  255. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/callbacks/dvc.py +0 -0
  256. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/callbacks/hub.py +0 -0
  257. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/callbacks/mlflow.py +0 -0
  258. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/callbacks/neptune.py +0 -0
  259. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/callbacks/platform.py +0 -0
  260. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/callbacks/raytune.py +0 -0
  261. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  262. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/callbacks/wb.py +0 -0
  263. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/checks.py +0 -0
  264. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/cpu.py +0 -0
  265. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/dist.py +0 -0
  266. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/downloads.py +0 -0
  267. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/errors.py +0 -0
  268. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/events.py +0 -0
  269. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/export/__init__.py +0 -0
  270. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/export/imx.py +0 -0
  271. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/files.py +0 -0
  272. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/git.py +0 -0
  273. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/instance.py +0 -0
  274. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/logger.py +0 -0
  275. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/loss.py +0 -0
  276. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/nms.py +0 -0
  277. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/ops.py +0 -0
  278. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/patches.py +0 -0
  279. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/plotting.py +0 -0
  280. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/tal.py +0 -0
  281. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/tqdm.py +0 -0
  282. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/triton.py +0 -0
  283. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics/utils/tuner.py +0 -0
  284. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics.egg-info/SOURCES.txt +0 -0
  285. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics.egg-info/dependency_links.txt +0 -0
  286. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics.egg-info/entry_points.txt +0 -0
  287. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics.egg-info/requires.txt +0 -0
  288. {ultralytics-8.3.203 → ultralytics-8.3.204}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.203
3
+ Version: 8.3.204
4
4
  Summary: Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -239,11 +239,11 @@ Refer to the [Segmentation Docs](https://docs.ultralytics.com/tasks/segment/) fo
239
239
 
240
240
  | Model | size<br><sup>(pixels) | mAP<sup>box<br>50-95 | mAP<sup>mask<br>50-95 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
241
241
  | -------------------------------------------------------------------------------------------- | --------------------- | -------------------- | --------------------- | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
242
- | [YOLO11n-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-seg.pt) | 640 | 38.9 | 32.0 | 65.9 ± 1.1 | 1.8 ± 0.0 | 2.9 | 10.4 |
243
- | [YOLO11s-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-seg.pt) | 640 | 46.6 | 37.8 | 117.6 ± 4.9 | 2.9 ± 0.0 | 10.1 | 35.5 |
244
- | [YOLO11m-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-seg.pt) | 640 | 51.5 | 41.5 | 281.6 ± 1.2 | 6.3 ± 0.1 | 22.4 | 123.3 |
245
- | [YOLO11l-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-seg.pt) | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 142.2 |
246
- | [YOLO11x-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-seg.pt) | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 319.0 |
242
+ | [YOLO11n-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-seg.pt) | 640 | 38.9 | 32.0 | 65.9 ± 1.1 | 1.8 ± 0.0 | 2.9 | 9.7 |
243
+ | [YOLO11s-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-seg.pt) | 640 | 46.6 | 37.8 | 117.6 ± 4.9 | 2.9 ± 0.0 | 10.1 | 33.0 |
244
+ | [YOLO11m-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-seg.pt) | 640 | 51.5 | 41.5 | 281.6 ± 1.2 | 6.3 ± 0.1 | 22.4 | 113.2 |
245
+ | [YOLO11l-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-seg.pt) | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 132.2 |
246
+ | [YOLO11x-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-seg.pt) | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 296.4 |
247
247
 
248
248
  - **mAP<sup>val</sup>** values are for single-model single-scale on the [COCO val2017](https://cocodataset.org/) dataset. See [YOLO Performance Metrics](https://docs.ultralytics.com/guides/yolo-performance-metrics/) for details. <br>Reproduce with `yolo val segment data=coco.yaml device=0`
249
249
  - **Speed** metrics are averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce with `yolo val segment data=coco.yaml batch=1 device=0|cpu`
@@ -256,11 +256,11 @@ Consult the [Classification Docs](https://docs.ultralytics.com/tasks/classify/)
256
256
 
257
257
  | Model | size<br><sup>(pixels) | acc<br><sup>top1 | acc<br><sup>top5 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) at 224 |
258
258
  | -------------------------------------------------------------------------------------------- | --------------------- | ---------------- | ---------------- | ------------------------------ | ----------------------------------- | ------------------ | ------------------------ |
259
- | [YOLO11n-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-cls.pt) | 224 | 70.0 | 89.4 | 5.0 ± 0.3 | 1.1 ± 0.0 | 1.6 | 0.5 |
260
- | [YOLO11s-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-cls.pt) | 224 | 75.4 | 92.7 | 7.9 ± 0.2 | 1.3 ± 0.0 | 5.5 | 1.6 |
261
- | [YOLO11m-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-cls.pt) | 224 | 77.3 | 93.9 | 17.2 ± 0.4 | 2.0 ± 0.0 | 10.4 | 5.0 |
262
- | [YOLO11l-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-cls.pt) | 224 | 78.3 | 94.3 | 23.2 ± 0.3 | 2.8 ± 0.0 | 12.9 | 6.2 |
263
- | [YOLO11x-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-cls.pt) | 224 | 79.5 | 94.9 | 41.4 ± 0.9 | 3.8 ± 0.0 | 28.4 | 13.7 |
259
+ | [YOLO11n-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-cls.pt) | 224 | 70.0 | 89.4 | 5.0 ± 0.3 | 1.1 ± 0.0 | 2.8 | 0.5 |
260
+ | [YOLO11s-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-cls.pt) | 224 | 75.4 | 92.7 | 7.9 ± 0.2 | 1.3 ± 0.0 | 6.7 | 1.6 |
261
+ | [YOLO11m-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-cls.pt) | 224 | 77.3 | 93.9 | 17.2 ± 0.4 | 2.0 ± 0.0 | 11.6 | 4.9 |
262
+ | [YOLO11l-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-cls.pt) | 224 | 78.3 | 94.3 | 23.2 ± 0.3 | 2.8 ± 0.0 | 14.1 | 6.2 |
263
+ | [YOLO11x-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-cls.pt) | 224 | 79.5 | 94.9 | 41.4 ± 0.9 | 3.8 ± 0.0 | 29.6 | 13.6 |
264
264
 
265
265
  - **acc** values represent model accuracy on the [ImageNet](https://www.image-net.org/) dataset validation set. <br>Reproduce with `yolo val classify data=path/to/ImageNet device=0`
266
266
  - **Speed** metrics are averaged over ImageNet val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce with `yolo val classify data=path/to/ImageNet batch=1 device=0|cpu`
@@ -273,11 +273,11 @@ See the [Pose Estimation Docs](https://docs.ultralytics.com/tasks/pose/) for usa
273
273
 
274
274
  | Model | size<br><sup>(pixels) | mAP<sup>pose<br>50-95 | mAP<sup>pose<br>50 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
275
275
  | ---------------------------------------------------------------------------------------------- | --------------------- | --------------------- | ------------------ | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
276
- | [YOLO11n-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-pose.pt) | 640 | 50.0 | 81.0 | 52.4 ± 0.5 | 1.7 ± 0.0 | 2.9 | 7.6 |
277
- | [YOLO11s-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-pose.pt) | 640 | 58.9 | 86.3 | 90.5 ± 0.6 | 2.6 ± 0.0 | 9.9 | 23.2 |
278
- | [YOLO11m-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-pose.pt) | 640 | 64.9 | 89.4 | 187.3 ± 0.8 | 4.9 ± 0.1 | 20.9 | 71.7 |
279
- | [YOLO11l-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-pose.pt) | 640 | 66.1 | 89.9 | 247.7 ± 1.1 | 6.4 ± 0.1 | 26.2 | 90.7 |
280
- | [YOLO11x-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-pose.pt) | 640 | 69.5 | 91.1 | 488.0 ± 13.9 | 12.1 ± 0.2 | 58.8 | 203.3 |
276
+ | [YOLO11n-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-pose.pt) | 640 | 50.0 | 81.0 | 52.4 ± 0.5 | 1.7 ± 0.0 | 2.9 | 7.4 |
277
+ | [YOLO11s-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-pose.pt) | 640 | 58.9 | 86.3 | 90.5 ± 0.6 | 2.6 ± 0.0 | 9.9 | 23.1 |
278
+ | [YOLO11m-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-pose.pt) | 640 | 64.9 | 89.4 | 187.3 ± 0.8 | 4.9 ± 0.1 | 20.9 | 71.4 |
279
+ | [YOLO11l-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-pose.pt) | 640 | 66.1 | 89.9 | 247.7 ± 1.1 | 6.4 ± 0.1 | 26.1 | 90.3 |
280
+ | [YOLO11x-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-pose.pt) | 640 | 69.5 | 91.1 | 488.0 ± 13.9 | 12.1 ± 0.2 | 58.8 | 202.8 |
281
281
 
282
282
  - **mAP<sup>val</sup>** values are for single-model single-scale on the [COCO Keypoints val2017](https://docs.ultralytics.com/datasets/pose/coco/) dataset. See [YOLO Performance Metrics](https://docs.ultralytics.com/guides/yolo-performance-metrics/) for details. <br>Reproduce with `yolo val pose data=coco-pose.yaml device=0`
283
283
  - **Speed** metrics are averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce with `yolo val pose data=coco-pose.yaml batch=1 device=0|cpu`
@@ -290,11 +290,11 @@ Check the [OBB Docs](https://docs.ultralytics.com/tasks/obb/) for usage examples
290
290
 
291
291
  | Model | size<br><sup>(pixels) | mAP<sup>test<br>50 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
292
292
  | -------------------------------------------------------------------------------------------- | --------------------- | ------------------ | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
293
- | [YOLO11n-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-obb.pt) | 1024 | 78.4 | 117.6 ± 0.8 | 4.4 ± 0.0 | 2.7 | 17.2 |
294
- | [YOLO11s-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-obb.pt) | 1024 | 79.5 | 219.4 ± 4.0 | 5.1 ± 0.0 | 9.7 | 57.5 |
295
- | [YOLO11m-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-obb.pt) | 1024 | 80.9 | 562.8 ± 2.9 | 10.1 ± 0.4 | 20.9 | 183.5 |
296
- | [YOLO11l-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-obb.pt) | 1024 | 81.0 | 712.5 ± 5.0 | 13.5 ± 0.6 | 26.2 | 232.0 |
297
- | [YOLO11x-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-obb.pt) | 1024 | 81.3 | 1408.6 ± 7.7 | 28.6 ± 1.0 | 58.8 | 520.2 |
293
+ | [YOLO11n-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-obb.pt) | 1024 | 78.4 | 117.6 ± 0.8 | 4.4 ± 0.0 | 2.7 | 16.8 |
294
+ | [YOLO11s-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-obb.pt) | 1024 | 79.5 | 219.4 ± 4.0 | 5.1 ± 0.0 | 9.7 | 57.1 |
295
+ | [YOLO11m-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-obb.pt) | 1024 | 80.9 | 562.8 ± 2.9 | 10.1 ± 0.4 | 20.9 | 182.8 |
296
+ | [YOLO11l-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-obb.pt) | 1024 | 81.0 | 712.5 ± 5.0 | 13.5 ± 0.6 | 26.1 | 231.2 |
297
+ | [YOLO11x-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-obb.pt) | 1024 | 81.3 | 1408.6 ± 7.7 | 28.6 ± 1.0 | 58.8 | 519.1 |
298
298
 
299
299
  - **mAP<sup>test</sup>** values are for single-model multiscale performance on the [DOTAv1 test set](https://captain-whu.github.io/DOTA/dataset.html). <br>Reproduce by `yolo val obb data=DOTAv1.yaml device=0 split=test` and submit merged results to the [DOTA evaluation server](https://captain-whu.github.io/DOTA/evaluation.html).
300
300
  - **Speed** metrics are averaged over [DOTAv1 val images](https://docs.ultralytics.com/datasets/obb/dota-v2/#dota-v10) using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce by `yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu`
@@ -149,11 +149,11 @@ Refer to the [Segmentation Docs](https://docs.ultralytics.com/tasks/segment/) fo
149
149
 
150
150
  | Model | size<br><sup>(pixels) | mAP<sup>box<br>50-95 | mAP<sup>mask<br>50-95 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
151
151
  | -------------------------------------------------------------------------------------------- | --------------------- | -------------------- | --------------------- | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
152
- | [YOLO11n-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-seg.pt) | 640 | 38.9 | 32.0 | 65.9 ± 1.1 | 1.8 ± 0.0 | 2.9 | 10.4 |
153
- | [YOLO11s-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-seg.pt) | 640 | 46.6 | 37.8 | 117.6 ± 4.9 | 2.9 ± 0.0 | 10.1 | 35.5 |
154
- | [YOLO11m-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-seg.pt) | 640 | 51.5 | 41.5 | 281.6 ± 1.2 | 6.3 ± 0.1 | 22.4 | 123.3 |
155
- | [YOLO11l-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-seg.pt) | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 142.2 |
156
- | [YOLO11x-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-seg.pt) | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 319.0 |
152
+ | [YOLO11n-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-seg.pt) | 640 | 38.9 | 32.0 | 65.9 ± 1.1 | 1.8 ± 0.0 | 2.9 | 9.7 |
153
+ | [YOLO11s-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-seg.pt) | 640 | 46.6 | 37.8 | 117.6 ± 4.9 | 2.9 ± 0.0 | 10.1 | 33.0 |
154
+ | [YOLO11m-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-seg.pt) | 640 | 51.5 | 41.5 | 281.6 ± 1.2 | 6.3 ± 0.1 | 22.4 | 113.2 |
155
+ | [YOLO11l-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-seg.pt) | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 132.2 |
156
+ | [YOLO11x-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-seg.pt) | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 296.4 |
157
157
 
158
158
  - **mAP<sup>val</sup>** values are for single-model single-scale on the [COCO val2017](https://cocodataset.org/) dataset. See [YOLO Performance Metrics](https://docs.ultralytics.com/guides/yolo-performance-metrics/) for details. <br>Reproduce with `yolo val segment data=coco.yaml device=0`
159
159
  - **Speed** metrics are averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce with `yolo val segment data=coco.yaml batch=1 device=0|cpu`
@@ -166,11 +166,11 @@ Consult the [Classification Docs](https://docs.ultralytics.com/tasks/classify/)
166
166
 
167
167
  | Model | size<br><sup>(pixels) | acc<br><sup>top1 | acc<br><sup>top5 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) at 224 |
168
168
  | -------------------------------------------------------------------------------------------- | --------------------- | ---------------- | ---------------- | ------------------------------ | ----------------------------------- | ------------------ | ------------------------ |
169
- | [YOLO11n-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-cls.pt) | 224 | 70.0 | 89.4 | 5.0 ± 0.3 | 1.1 ± 0.0 | 1.6 | 0.5 |
170
- | [YOLO11s-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-cls.pt) | 224 | 75.4 | 92.7 | 7.9 ± 0.2 | 1.3 ± 0.0 | 5.5 | 1.6 |
171
- | [YOLO11m-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-cls.pt) | 224 | 77.3 | 93.9 | 17.2 ± 0.4 | 2.0 ± 0.0 | 10.4 | 5.0 |
172
- | [YOLO11l-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-cls.pt) | 224 | 78.3 | 94.3 | 23.2 ± 0.3 | 2.8 ± 0.0 | 12.9 | 6.2 |
173
- | [YOLO11x-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-cls.pt) | 224 | 79.5 | 94.9 | 41.4 ± 0.9 | 3.8 ± 0.0 | 28.4 | 13.7 |
169
+ | [YOLO11n-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-cls.pt) | 224 | 70.0 | 89.4 | 5.0 ± 0.3 | 1.1 ± 0.0 | 2.8 | 0.5 |
170
+ | [YOLO11s-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-cls.pt) | 224 | 75.4 | 92.7 | 7.9 ± 0.2 | 1.3 ± 0.0 | 6.7 | 1.6 |
171
+ | [YOLO11m-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-cls.pt) | 224 | 77.3 | 93.9 | 17.2 ± 0.4 | 2.0 ± 0.0 | 11.6 | 4.9 |
172
+ | [YOLO11l-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-cls.pt) | 224 | 78.3 | 94.3 | 23.2 ± 0.3 | 2.8 ± 0.0 | 14.1 | 6.2 |
173
+ | [YOLO11x-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-cls.pt) | 224 | 79.5 | 94.9 | 41.4 ± 0.9 | 3.8 ± 0.0 | 29.6 | 13.6 |
174
174
 
175
175
  - **acc** values represent model accuracy on the [ImageNet](https://www.image-net.org/) dataset validation set. <br>Reproduce with `yolo val classify data=path/to/ImageNet device=0`
176
176
  - **Speed** metrics are averaged over ImageNet val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce with `yolo val classify data=path/to/ImageNet batch=1 device=0|cpu`
@@ -183,11 +183,11 @@ See the [Pose Estimation Docs](https://docs.ultralytics.com/tasks/pose/) for usa
183
183
 
184
184
  | Model | size<br><sup>(pixels) | mAP<sup>pose<br>50-95 | mAP<sup>pose<br>50 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
185
185
  | ---------------------------------------------------------------------------------------------- | --------------------- | --------------------- | ------------------ | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
186
- | [YOLO11n-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-pose.pt) | 640 | 50.0 | 81.0 | 52.4 ± 0.5 | 1.7 ± 0.0 | 2.9 | 7.6 |
187
- | [YOLO11s-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-pose.pt) | 640 | 58.9 | 86.3 | 90.5 ± 0.6 | 2.6 ± 0.0 | 9.9 | 23.2 |
188
- | [YOLO11m-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-pose.pt) | 640 | 64.9 | 89.4 | 187.3 ± 0.8 | 4.9 ± 0.1 | 20.9 | 71.7 |
189
- | [YOLO11l-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-pose.pt) | 640 | 66.1 | 89.9 | 247.7 ± 1.1 | 6.4 ± 0.1 | 26.2 | 90.7 |
190
- | [YOLO11x-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-pose.pt) | 640 | 69.5 | 91.1 | 488.0 ± 13.9 | 12.1 ± 0.2 | 58.8 | 203.3 |
186
+ | [YOLO11n-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-pose.pt) | 640 | 50.0 | 81.0 | 52.4 ± 0.5 | 1.7 ± 0.0 | 2.9 | 7.4 |
187
+ | [YOLO11s-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-pose.pt) | 640 | 58.9 | 86.3 | 90.5 ± 0.6 | 2.6 ± 0.0 | 9.9 | 23.1 |
188
+ | [YOLO11m-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-pose.pt) | 640 | 64.9 | 89.4 | 187.3 ± 0.8 | 4.9 ± 0.1 | 20.9 | 71.4 |
189
+ | [YOLO11l-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-pose.pt) | 640 | 66.1 | 89.9 | 247.7 ± 1.1 | 6.4 ± 0.1 | 26.1 | 90.3 |
190
+ | [YOLO11x-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-pose.pt) | 640 | 69.5 | 91.1 | 488.0 ± 13.9 | 12.1 ± 0.2 | 58.8 | 202.8 |
191
191
 
192
192
  - **mAP<sup>val</sup>** values are for single-model single-scale on the [COCO Keypoints val2017](https://docs.ultralytics.com/datasets/pose/coco/) dataset. See [YOLO Performance Metrics](https://docs.ultralytics.com/guides/yolo-performance-metrics/) for details. <br>Reproduce with `yolo val pose data=coco-pose.yaml device=0`
193
193
  - **Speed** metrics are averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce with `yolo val pose data=coco-pose.yaml batch=1 device=0|cpu`
@@ -200,11 +200,11 @@ Check the [OBB Docs](https://docs.ultralytics.com/tasks/obb/) for usage examples
200
200
 
201
201
  | Model | size<br><sup>(pixels) | mAP<sup>test<br>50 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
202
202
  | -------------------------------------------------------------------------------------------- | --------------------- | ------------------ | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
203
- | [YOLO11n-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-obb.pt) | 1024 | 78.4 | 117.6 ± 0.8 | 4.4 ± 0.0 | 2.7 | 17.2 |
204
- | [YOLO11s-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-obb.pt) | 1024 | 79.5 | 219.4 ± 4.0 | 5.1 ± 0.0 | 9.7 | 57.5 |
205
- | [YOLO11m-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-obb.pt) | 1024 | 80.9 | 562.8 ± 2.9 | 10.1 ± 0.4 | 20.9 | 183.5 |
206
- | [YOLO11l-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-obb.pt) | 1024 | 81.0 | 712.5 ± 5.0 | 13.5 ± 0.6 | 26.2 | 232.0 |
207
- | [YOLO11x-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-obb.pt) | 1024 | 81.3 | 1408.6 ± 7.7 | 28.6 ± 1.0 | 58.8 | 520.2 |
203
+ | [YOLO11n-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-obb.pt) | 1024 | 78.4 | 117.6 ± 0.8 | 4.4 ± 0.0 | 2.7 | 16.8 |
204
+ | [YOLO11s-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-obb.pt) | 1024 | 79.5 | 219.4 ± 4.0 | 5.1 ± 0.0 | 9.7 | 57.1 |
205
+ | [YOLO11m-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-obb.pt) | 1024 | 80.9 | 562.8 ± 2.9 | 10.1 ± 0.4 | 20.9 | 182.8 |
206
+ | [YOLO11l-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-obb.pt) | 1024 | 81.0 | 712.5 ± 5.0 | 13.5 ± 0.6 | 26.1 | 231.2 |
207
+ | [YOLO11x-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-obb.pt) | 1024 | 81.3 | 1408.6 ± 7.7 | 28.6 ± 1.0 | 58.8 | 519.1 |
208
208
 
209
209
  - **mAP<sup>test</sup>** values are for single-model multiscale performance on the [DOTAv1 test set](https://captain-whu.github.io/DOTA/dataset.html). <br>Reproduce by `yolo val obb data=DOTAv1.yaml device=0 split=test` and submit merged results to the [DOTA evaluation server](https://captain-whu.github.io/DOTA/evaluation.html).
210
210
  - **Speed** metrics are averaged over [DOTAv1 val images](https://docs.ultralytics.com/datasets/obb/dota-v2/#dota-v10) using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce by `yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu`
@@ -158,9 +158,6 @@ source = ["ultralytics/"]
158
158
  data_file = "tests/.coverage"
159
159
  omit = ["ultralytics/utils/callbacks/*"]
160
160
 
161
- [tool.uv]
162
- required-version = "==0.8.19"
163
-
164
161
  [tool.isort]
165
162
  line_length = 120
166
163
  multi_line_output = 0
@@ -34,7 +34,7 @@ def test_train(task: str, model: str, data: str) -> None:
34
34
  @pytest.mark.parametrize("task,model,data", TASK_MODEL_DATA)
35
35
  def test_val(task: str, model: str, data: str) -> None:
36
36
  """Test YOLO validation process for specified task, model, and data using a shell command."""
37
- run(f"yolo val {task} model={model} data={data} imgsz=32 save_txt save_json")
37
+ run(f"yolo val {task} model={model} data={data} imgsz=32 save_txt save_json visualize")
38
38
 
39
39
 
40
40
  @pytest.mark.parametrize("task,model,data", TASK_MODEL_DATA)
@@ -70,6 +70,7 @@ def test_export_onnx_matrix(task, dynamic, int8, half, batch, simplify, nms):
70
70
  simplify=simplify,
71
71
  nms=nms,
72
72
  device=DEVICES[0],
73
+ # opset=20 if nms else None, # fix ONNX Runtime errors with NMS
73
74
  )
74
75
  YOLO(file)([SOURCE] * batch, imgsz=64 if dynamic else 32, device=DEVICES[0]) # exported model inference
75
76
  Path(file).unlink() # cleanup
@@ -114,7 +115,9 @@ def test_train():
114
115
  device = tuple(DEVICES) if len(DEVICES) > 1 else DEVICES[0]
115
116
  # NVIDIA Jetson only has one GPU and therefore skipping checks
116
117
  if not IS_JETSON:
117
- results = YOLO(MODEL).train(data="coco8.yaml", imgsz=64, epochs=1, device=device) # requires imgsz>=64
118
+ results = YOLO(MODEL).train(
119
+ data="coco8.yaml", imgsz=64, epochs=1, device=device, batch=15
120
+ ) # requires imgsz>=64
118
121
  visible = eval(os.environ["CUDA_VISIBLE_DEVICES"])
119
122
  assert visible == device, f"Passed GPUs '{device}', but used GPUs '{visible}'"
120
123
  assert (
@@ -83,7 +83,7 @@ def test_export_openvino_matrix(task, dynamic, int8, half, batch, nms):
83
83
  for task, dynamic, int8, half, batch, simplify, nms in product(
84
84
  TASKS, [True, False], [False], [False], [1, 2], [True, False], [True, False]
85
85
  )
86
- if not ((int8 and half) or (task == "classify" and nms) or (task == "obb" and nms and not TORCH_1_13))
86
+ if not ((int8 and half) or (task == "classify" and nms) or (nms and not TORCH_1_13))
87
87
  ],
88
88
  )
89
89
  def test_export_onnx_matrix(task, dynamic, int8, half, batch, simplify, nms):
@@ -157,7 +157,7 @@ def test_export_coreml_matrix(task, dynamic, int8, half, nms, batch):
157
157
  for task, dynamic, int8, half, batch, nms in product(
158
158
  TASKS, [False], [True, False], [True, False], [1], [True, False]
159
159
  )
160
- if not ((int8 and half) or (task == "classify" and nms) or (ARM64 and nms))
160
+ if not ((int8 and half) or (task == "classify" and nms) or (ARM64 and nms) or (nms and not TORCH_1_13))
161
161
  ],
162
162
  )
163
163
  def test_export_tflite_matrix(task, dynamic, int8, half, batch, nms):
@@ -673,7 +673,7 @@ def test_yoloe():
673
673
  model.val(data="coco128-seg.yaml", load_vp=True, imgsz=32)
674
674
 
675
675
  # Train, fine-tune
676
- from ultralytics.models.yolo.yoloe import YOLOEPESegTrainer
676
+ from ultralytics.models.yolo.yoloe import YOLOEPESegTrainer, YOLOESegTrainerFromScratch
677
677
 
678
678
  model = YOLOE("yoloe-11s-seg.pt")
679
679
  model.train(
@@ -683,6 +683,15 @@ def test_yoloe():
683
683
  trainer=YOLOEPESegTrainer,
684
684
  imgsz=32,
685
685
  )
686
+ # Train, from scratch
687
+ model = YOLOE("yoloe-11s-seg.yaml")
688
+ model.train(
689
+ data=dict(train=dict(yolo_data=["coco128-seg.yaml"]), val=dict(yolo_data=["coco128-seg.yaml"])),
690
+ epochs=1,
691
+ close_mosaic=1,
692
+ trainer=YOLOESegTrainerFromScratch,
693
+ imgsz=32,
694
+ )
686
695
 
687
696
  # prompt-free
688
697
  # predict
@@ -12,8 +12,9 @@ import pytest
12
12
 
13
13
  from tests import MODEL, TMP
14
14
  from ultralytics import solutions
15
- from ultralytics.utils import ASSETS_URL, IS_RASPBERRYPI, checks
15
+ from ultralytics.utils import ASSETS_URL, IS_RASPBERRYPI, TORCH_VERSION, checks
16
16
  from ultralytics.utils.downloads import safe_download
17
+ from ultralytics.utils.torch_utils import TORCH_2_4
17
18
 
18
19
  # Pre-defined arguments values
19
20
  SHOW = False
@@ -205,15 +206,6 @@ def test_solution(name, solution_class, needs_frame_count, video, kwargs):
205
206
  )
206
207
 
207
208
 
208
- @pytest.mark.skipif(checks.IS_PYTHON_3_8, reason="Disabled due to unsupported CLIP dependencies.")
209
- @pytest.mark.skipif(IS_RASPBERRYPI, reason="Disabled due to slow performance on Raspberry Pi.")
210
- def test_similarity_search():
211
- """Test similarity search solution with sample images and text query."""
212
- safe_download(f"{ASSETS_URL}/4-imgs-similaritysearch.zip", dir=TMP) # 4 dog images for testing in a zip file
213
- searcher = solutions.VisualAISearch(data=str(TMP / "4-imgs-similaritysearch"))
214
- _ = searcher("a dog sitting on a bench") # Returns the results in format "- img name | similarity score"
215
-
216
-
217
209
  def test_left_click_selection():
218
210
  """Test distance calculation left click selection functionality."""
219
211
  dc = solutions.DistanceCalculation()
@@ -297,7 +289,16 @@ def test_streamlit_handle_video_upload_creates_file():
297
289
  os.remove("ultralytics.mp4")
298
290
 
299
291
 
300
- @pytest.mark.skipif(checks.IS_PYTHON_3_8, reason="Disabled due to unsupported CLIP dependencies.")
292
+ @pytest.mark.skipif(not TORCH_2_4, reason=f"VisualAISearch requires torch>=2.4 (found torch=={TORCH_VERSION})")
293
+ @pytest.mark.skipif(IS_RASPBERRYPI, reason="Disabled due to slow performance on Raspberry Pi.")
294
+ def test_similarity_search():
295
+ """Test similarity search solution with sample images and text query."""
296
+ safe_download(f"{ASSETS_URL}/4-imgs-similaritysearch.zip", dir=TMP) # 4 dog images for testing in a zip file
297
+ searcher = solutions.VisualAISearch(data=str(TMP / "4-imgs-similaritysearch"))
298
+ _ = searcher("a dog sitting on a bench") # Returns the results in format "- img name | similarity score"
299
+
300
+
301
+ @pytest.mark.skipif(not TORCH_2_4, reason=f"VisualAISearch requires torch>=2.4 (found torch=={TORCH_VERSION})")
301
302
  @pytest.mark.skipif(IS_RASPBERRYPI, reason="Disabled due to slow performance on Raspberry Pi.")
302
303
  def test_similarity_search_app_init():
303
304
  """Test SearchApp initializes with required attributes."""
@@ -306,6 +307,7 @@ def test_similarity_search_app_init():
306
307
  assert hasattr(app, "run")
307
308
 
308
309
 
310
+ @pytest.mark.skipif(not TORCH_2_4, reason=f"VisualAISearch requires torch>=2.4 (found torch=={TORCH_VERSION})")
309
311
  @pytest.mark.skipif(IS_RASPBERRYPI, reason="Disabled due to slow performance on Raspberry Pi.")
310
312
  def test_similarity_search_complete(tmp_path):
311
313
  """Test VisualAISearch end-to-end with sample image and query."""
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.203"
3
+ __version__ = "8.3.204"
4
4
 
5
5
  import importlib
6
6
  import os
@@ -512,6 +512,11 @@ def check_cls_dataset(dataset: str | Path, split: str = "") -> dict[str, Any]:
512
512
  dataset = Path(dataset)
513
513
  data_dir = (dataset if dataset.is_dir() else (DATASETS_DIR / dataset)).resolve()
514
514
  if not data_dir.is_dir():
515
+ if data_dir.suffix != "":
516
+ raise ValueError(
517
+ f'Classification datasets must be a directory (data="path/to/dir") not a file (data="{dataset}"), '
518
+ "See https://docs.ultralytics.com/datasets/classify/"
519
+ )
515
520
  LOGGER.info("")
516
521
  LOGGER.warning(f"Dataset not found, missing path {data_dir}, attempting download...")
517
522
  t = time.time()
@@ -112,7 +112,7 @@ from ultralytics.utils.metrics import batch_probiou
112
112
  from ultralytics.utils.nms import TorchNMS
113
113
  from ultralytics.utils.ops import Profile
114
114
  from ultralytics.utils.patches import arange_patch
115
- from ultralytics.utils.torch_utils import TORCH_1_11, TORCH_1_13, TORCH_2_1, select_device
115
+ from ultralytics.utils.torch_utils import TORCH_1_11, TORCH_1_13, TORCH_2_1, TORCH_2_4, select_device
116
116
 
117
117
 
118
118
  def export_formats():
@@ -152,10 +152,13 @@ def export_formats():
152
152
  return dict(zip(["Format", "Argument", "Suffix", "CPU", "GPU", "Arguments"], zip(*x)))
153
153
 
154
154
 
155
- def best_onnx_opset(onnx) -> int:
155
+ def best_onnx_opset(onnx, cuda=False) -> int:
156
156
  """Return max ONNX opset for this torch version with ONNX fallback."""
157
- if TORCH_1_13: # not supported by torch<1.13
157
+ version = ".".join(TORCH_VERSION.split(".")[:2])
158
+ if TORCH_2_4: # _constants.ONNX_MAX_OPSET first defined in torch 1.13
158
159
  opset = torch.onnx.utils._constants.ONNX_MAX_OPSET - 1 # use second-latest version for safety
160
+ if cuda:
161
+ opset -= 2 # fix CUDA ONNXRuntime NMS squeeze op errors
159
162
  else:
160
163
  opset = {
161
164
  "1.8": 12,
@@ -164,16 +167,16 @@ def best_onnx_opset(onnx) -> int:
164
167
  "1.11": 14,
165
168
  "1.12": 15,
166
169
  "1.13": 17,
167
- "2.0": 18,
168
- "2.1": 19,
169
- "2.2": 19,
170
- "2.3": 19,
170
+ "2.0": 17, # reduced from 18 to fix ONNX errors
171
+ "2.1": 17, # reduced from 19
172
+ "2.2": 17, # reduced from 19
173
+ "2.3": 17, # reduced from 19
171
174
  "2.4": 20,
172
175
  "2.5": 20,
173
176
  "2.6": 20,
174
177
  "2.7": 20,
175
178
  "2.8": 23,
176
- }.get(".".join(TORCH_VERSION.split(".")[:2]), 12)
179
+ }.get(version, 12)
177
180
  return min(opset, onnx.defs.onnx_opset_version())
178
181
 
179
182
 
@@ -380,6 +383,8 @@ class Exporter:
380
383
  if self.args.nms:
381
384
  assert not isinstance(model, ClassificationModel), "'nms=True' is not valid for classification models."
382
385
  assert not tflite or not ARM64 or not LINUX, "TFLite export with NMS unsupported on ARM64 Linux"
386
+ assert not is_tf_format or TORCH_1_13, "TensorFlow exports with NMS require torch>=1.13"
387
+ assert not onnx or TORCH_1_13, "ONNX export with NMS requires torch>=1.13"
383
388
  if getattr(model, "end2end", False):
384
389
  LOGGER.warning("'nms=True' is not available for end2end models. Forcing 'nms=False'.")
385
390
  self.args.nms = False
@@ -611,8 +616,11 @@ class Exporter:
611
616
  check_requirements(requirements)
612
617
  import onnx # noqa
613
618
 
614
- opset = self.args.opset or best_onnx_opset(onnx)
619
+ opset = self.args.opset or best_onnx_opset(onnx, cuda="cuda" in self.device.type)
615
620
  LOGGER.info(f"\n{prefix} starting export with onnx {onnx.__version__} opset {opset}...")
621
+ if self.args.nms:
622
+ assert TORCH_1_13, f"'nms=True' ONNX export requires torch>=1.13 (found torch=={TORCH_VERSION})"
623
+
616
624
  f = str(self.file.with_suffix(".onnx"))
617
625
  output_names = ["output0", "output1"] if isinstance(self.model, SegmentationModel) else ["output0"]
618
626
  dynamic = self.args.dynamic
@@ -123,7 +123,7 @@ class BaseTrainer:
123
123
  self.hub_session = overrides.pop("session", None) # HUB
124
124
  self.args = get_cfg(cfg, overrides)
125
125
  self.check_resume(overrides)
126
- self.device = select_device(self.args.device, self.args.batch)
126
+ self.device = select_device(self.args.device)
127
127
  # Update "-1" devices so post-training val does not repeat search
128
128
  self.args.device = os.getenv("CUDA_VISIBLE_DEVICES") if "cuda" in str(self.device) else str(self.device)
129
129
  self.validator = None
@@ -216,10 +216,10 @@ class BaseTrainer:
216
216
  LOGGER.warning("'rect=True' is incompatible with Multi-GPU training, setting 'rect=False'")
217
217
  self.args.rect = False
218
218
  if self.args.batch < 1.0:
219
- LOGGER.warning(
220
- "'batch<1' for AutoBatch is incompatible with Multi-GPU training, setting default 'batch=16'"
219
+ raise ValueError(
220
+ "AutoBatch with batch<1 not supported for Multi-GPU training, "
221
+ f"please specify a valid batch size multiple of GPU count {self.world_size}, i.e. batch={self.world_size * 8}."
221
222
  )
222
- self.args.batch = 16
223
223
 
224
224
  # Command
225
225
  cmd, file = generate_ddp_command(self)
@@ -260,10 +260,6 @@ class BaseTrainer:
260
260
  self.model = self.model.to(self.device)
261
261
  self.set_model_attributes()
262
262
 
263
- # Initialize loss criterion before compilation for torch.compile compatibility
264
- if hasattr(self.model, "init_criterion"):
265
- self.model.criterion = self.model.init_criterion()
266
-
267
263
  # Compile model
268
264
  self.model = attempt_compile(self.model, device=self.device, mode=self.args.compile)
269
265
 
@@ -160,7 +160,7 @@ class BaseValidator:
160
160
  callbacks.add_integration_callbacks(self)
161
161
  model = AutoBackend(
162
162
  model=model or self.args.model,
163
- device=select_device(self.args.device, self.args.batch),
163
+ device=select_device(self.args.device),
164
164
  dnn=self.args.dnn,
165
165
  data=self.args.data,
166
166
  fp16=self.args.half,
@@ -712,7 +712,7 @@ class SAM2Model(torch.nn.Module):
712
712
  continue # skip padding frames
713
713
  # "maskmem_features" might have been offloaded to CPU in demo use cases,
714
714
  # so we load it back to inference device (it's a no-op if it's already on device).
715
- feats = prev["maskmem_features"].to(device=device, non_blocking=True)
715
+ feats = prev["maskmem_features"].to(device=device, non_blocking=device.type == "cuda")
716
716
  to_cat_memory.append(feats.flatten(2).permute(2, 0, 1))
717
717
  # Spatial positional encoding (it might have been offloaded to CPU in eval)
718
718
  maskmem_enc = prev["maskmem_pos_enc"][-1].to(device=device)
@@ -1126,7 +1126,9 @@ class SAM2VideoPredictor(SAM2Predictor):
1126
1126
  )
1127
1127
 
1128
1128
  if prev_out is not None and prev_out.get("pred_masks") is not None:
1129
- prev_sam_mask_logits = prev_out["pred_masks"].to(device=self.device, non_blocking=True)
1129
+ prev_sam_mask_logits = prev_out["pred_masks"].to(
1130
+ device=self.device, non_blocking=self.device.type == "cuda"
1131
+ )
1130
1132
  # Clamp the scale of prev_sam_mask_logits to avoid rare numerical issues.
1131
1133
  prev_sam_mask_logits.clamp_(-32.0, 32.0)
1132
1134
  current_out = self._run_single_frame_inference(
@@ -1418,12 +1420,12 @@ class SAM2VideoPredictor(SAM2Predictor):
1418
1420
  maskmem_features = current_out["maskmem_features"]
1419
1421
  if maskmem_features is not None:
1420
1422
  current_out["maskmem_features"] = maskmem_features.to(
1421
- dtype=torch.float16, device=self.device, non_blocking=True
1423
+ dtype=torch.float16, device=self.device, non_blocking=self.device.type == "cuda"
1422
1424
  )
1423
1425
  # NOTE: Do not support the `fill_holes_in_mask_scores` function since it needs cuda extensions
1424
1426
  # potentially fill holes in the predicted masks
1425
1427
  # if self.fill_hole_area > 0:
1426
- # pred_masks = current_out["pred_masks"].to(self.device, non_blocking=True)
1428
+ # pred_masks = current_out["pred_masks"].to(self.device, non_blocking=self.device.type == "cuda")
1427
1429
  # pred_masks = fill_holes_in_mask_scores(pred_masks, self.fill_hole_area)
1428
1430
 
1429
1431
  # "maskmem_pos_enc" is the same across frames, so we only need to store one copy of it
@@ -1636,7 +1638,9 @@ class SAM2VideoPredictor(SAM2Predictor):
1636
1638
 
1637
1639
  # "maskmem_pos_enc" is the same across frames, so we only need to store one copy of it
1638
1640
  maskmem_pos_enc = self._get_maskmem_pos_enc(maskmem_pos_enc)
1639
- return maskmem_features.to(dtype=torch.float16, device=self.device, non_blocking=True), maskmem_pos_enc
1641
+ return maskmem_features.to(
1642
+ dtype=torch.float16, device=self.device, non_blocking=self.device.type == "cuda"
1643
+ ), maskmem_pos_enc
1640
1644
 
1641
1645
  def _add_output_per_object(self, frame_idx, current_out, storage_key):
1642
1646
  """
@@ -1906,7 +1910,7 @@ class SAM2DynamicInteractivePredictor(SAM2Predictor):
1906
1910
  consolidated_out["object_score_logits"][obj_idx : obj_idx + 1] = out["object_score_logits"]
1907
1911
 
1908
1912
  high_res_masks = F.interpolate(
1909
- consolidated_out["pred_masks"].to(self.device, non_blocking=True),
1913
+ consolidated_out["pred_masks"].to(self.device, non_blocking=self.device.type == "cuda"),
1910
1914
  size=self.imgsz,
1911
1915
  mode="bilinear",
1912
1916
  align_corners=False,
@@ -155,8 +155,8 @@ class ClassificationTrainer(BaseTrainer):
155
155
 
156
156
  def preprocess_batch(self, batch: dict[str, torch.Tensor]) -> dict[str, torch.Tensor]:
157
157
  """Preprocess a batch of images and classes."""
158
- batch["img"] = batch["img"].to(self.device, non_blocking=True)
159
- batch["cls"] = batch["cls"].to(self.device, non_blocking=True)
158
+ batch["img"] = batch["img"].to(self.device, non_blocking=self.device.type == "cuda")
159
+ batch["cls"] = batch["cls"].to(self.device, non_blocking=self.device.type == "cuda")
160
160
  return batch
161
161
 
162
162
  def progress_string(self) -> str:
@@ -89,9 +89,9 @@ class ClassificationValidator(BaseValidator):
89
89
 
90
90
  def preprocess(self, batch: dict[str, Any]) -> dict[str, Any]:
91
91
  """Preprocess input batch by moving data to device and converting to appropriate dtype."""
92
- batch["img"] = batch["img"].to(self.device, non_blocking=True)
92
+ batch["img"] = batch["img"].to(self.device, non_blocking=self.device.type == "cuda")
93
93
  batch["img"] = batch["img"].half() if self.args.half else batch["img"].float()
94
- batch["cls"] = batch["cls"].to(self.device, non_blocking=True)
94
+ batch["cls"] = batch["cls"].to(self.device, non_blocking=self.device.type == "cuda")
95
95
  return batch
96
96
 
97
97
  def update_metrics(self, preds: torch.Tensor, batch: dict[str, Any]) -> None:
@@ -120,7 +120,7 @@ class DetectionTrainer(BaseTrainer):
120
120
  """
121
121
  for k, v in batch.items():
122
122
  if isinstance(v, torch.Tensor):
123
- batch[k] = v.to(self.device, non_blocking=True)
123
+ batch[k] = v.to(self.device, non_blocking=self.device.type == "cuda")
124
124
  batch["img"] = batch["img"].float() / 255
125
125
  if self.args.multi_scale:
126
126
  imgs = batch["img"]
@@ -73,7 +73,7 @@ class DetectionValidator(BaseValidator):
73
73
  """
74
74
  for k, v in batch.items():
75
75
  if isinstance(v, torch.Tensor):
76
- batch[k] = v.to(self.device, non_blocking=True)
76
+ batch[k] = v.to(self.device, non_blocking=self.device.type == "cuda")
77
77
  batch["img"] = (batch["img"].half() if self.args.half else batch["img"].float()) / 255
78
78
  return batch
79
79
 
@@ -416,6 +416,7 @@ class YOLOE(Model):
416
416
  "batch": 1,
417
417
  "device": kwargs.get("device", None),
418
418
  "half": kwargs.get("half", False),
419
+ "imgsz": kwargs.get("imgsz", self.overrides["imgsz"]),
419
420
  },
420
421
  _callbacks=self.callbacks,
421
422
  )
@@ -172,7 +172,8 @@ class WorldTrainer(DetectionTrainer):
172
172
 
173
173
  # Add text features
174
174
  texts = list(itertools.chain(*batch["texts"]))
175
- txt_feats = torch.stack([self.text_embeddings[text] for text in texts]).to(self.device, non_blocking=True)
176
- txt_feats = txt_feats / txt_feats.norm(p=2, dim=-1, keepdim=True)
175
+ txt_feats = torch.stack([self.text_embeddings[text] for text in texts]).to(
176
+ self.device, non_blocking=self.device.type == "cuda"
177
+ )
177
178
  batch["txt_feats"] = txt_feats.reshape(len(batch["texts"]), -1, txt_feats.shape[-1])
178
179
  return batch