ultralytics 8.3.188__tar.gz → 8.3.189__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 (282) hide show
  1. {ultralytics-8.3.188 → ultralytics-8.3.189}/PKG-INFO +1 -1
  2. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/__init__.py +1 -1
  3. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/nn/autobackend.py +6 -3
  4. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/nn/tasks.py +2 -2
  5. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/__init__.py +15 -2
  6. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/torch_utils.py +50 -47
  7. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics.egg-info/PKG-INFO +1 -1
  8. {ultralytics-8.3.188 → ultralytics-8.3.189}/LICENSE +0 -0
  9. {ultralytics-8.3.188 → ultralytics-8.3.189}/README.md +0 -0
  10. {ultralytics-8.3.188 → ultralytics-8.3.189}/pyproject.toml +0 -0
  11. {ultralytics-8.3.188 → ultralytics-8.3.189}/setup.cfg +0 -0
  12. {ultralytics-8.3.188 → ultralytics-8.3.189}/tests/__init__.py +0 -0
  13. {ultralytics-8.3.188 → ultralytics-8.3.189}/tests/conftest.py +0 -0
  14. {ultralytics-8.3.188 → ultralytics-8.3.189}/tests/test_cli.py +0 -0
  15. {ultralytics-8.3.188 → ultralytics-8.3.189}/tests/test_cuda.py +0 -0
  16. {ultralytics-8.3.188 → ultralytics-8.3.189}/tests/test_engine.py +0 -0
  17. {ultralytics-8.3.188 → ultralytics-8.3.189}/tests/test_exports.py +0 -0
  18. {ultralytics-8.3.188 → ultralytics-8.3.189}/tests/test_integrations.py +0 -0
  19. {ultralytics-8.3.188 → ultralytics-8.3.189}/tests/test_python.py +0 -0
  20. {ultralytics-8.3.188 → ultralytics-8.3.189}/tests/test_solutions.py +0 -0
  21. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/assets/bus.jpg +0 -0
  22. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/assets/zidane.jpg +0 -0
  23. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/__init__.py +0 -0
  24. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  25. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  26. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  27. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  28. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  29. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  30. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  31. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  32. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  33. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  34. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  35. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  36. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  37. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  38. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/coco.yaml +0 -0
  39. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  40. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  41. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  42. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  43. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  44. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  45. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  46. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  47. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  48. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  49. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  50. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  51. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  52. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  53. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  54. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  55. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/signature.yaml +0 -0
  56. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  57. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/datasets/xView.yaml +0 -0
  58. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/default.yaml +0 -0
  59. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  60. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  61. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  62. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  63. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  64. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  65. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  66. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  67. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  68. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  69. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  70. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  71. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  72. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  73. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  74. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  75. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  76. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  77. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  78. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  79. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  80. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  81. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  82. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  83. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  84. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  85. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  86. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  87. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  88. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  89. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  90. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  91. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  92. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  93. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  94. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  95. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  96. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  97. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  98. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  99. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  100. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  101. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  102. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  103. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  104. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  105. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  106. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  107. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  108. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  109. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  110. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  111. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  112. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  113. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  114. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  115. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  116. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/data/__init__.py +0 -0
  117. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/data/annotator.py +0 -0
  118. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/data/augment.py +0 -0
  119. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/data/base.py +0 -0
  120. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/data/build.py +0 -0
  121. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/data/converter.py +0 -0
  122. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/data/dataset.py +0 -0
  123. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/data/loaders.py +0 -0
  124. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/data/scripts/download_weights.sh +0 -0
  125. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/data/scripts/get_coco.sh +0 -0
  126. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/data/scripts/get_coco128.sh +0 -0
  127. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  128. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/data/split.py +0 -0
  129. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/data/split_dota.py +0 -0
  130. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/data/utils.py +0 -0
  131. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/engine/__init__.py +0 -0
  132. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/engine/exporter.py +0 -0
  133. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/engine/model.py +0 -0
  134. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/engine/predictor.py +0 -0
  135. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/engine/results.py +0 -0
  136. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/engine/trainer.py +0 -0
  137. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/engine/tuner.py +0 -0
  138. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/engine/validator.py +0 -0
  139. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/hub/__init__.py +0 -0
  140. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/hub/auth.py +0 -0
  141. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/hub/google/__init__.py +0 -0
  142. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/hub/session.py +0 -0
  143. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/hub/utils.py +0 -0
  144. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/__init__.py +0 -0
  145. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/fastsam/__init__.py +0 -0
  146. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/fastsam/model.py +0 -0
  147. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/fastsam/predict.py +0 -0
  148. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/fastsam/utils.py +0 -0
  149. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/fastsam/val.py +0 -0
  150. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/nas/__init__.py +0 -0
  151. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/nas/model.py +0 -0
  152. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/nas/predict.py +0 -0
  153. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/nas/val.py +0 -0
  154. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/rtdetr/__init__.py +0 -0
  155. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/rtdetr/model.py +0 -0
  156. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/rtdetr/predict.py +0 -0
  157. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/rtdetr/train.py +0 -0
  158. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/rtdetr/val.py +0 -0
  159. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/sam/__init__.py +0 -0
  160. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/sam/amg.py +0 -0
  161. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/sam/build.py +0 -0
  162. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/sam/model.py +0 -0
  163. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/sam/modules/__init__.py +0 -0
  164. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/sam/modules/blocks.py +0 -0
  165. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/sam/modules/decoders.py +0 -0
  166. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/sam/modules/encoders.py +0 -0
  167. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  168. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/sam/modules/sam.py +0 -0
  169. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  170. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/sam/modules/transformer.py +0 -0
  171. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/sam/modules/utils.py +0 -0
  172. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/sam/predict.py +0 -0
  173. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/utils/__init__.py +0 -0
  174. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/utils/loss.py +0 -0
  175. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/utils/ops.py +0 -0
  176. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/__init__.py +0 -0
  177. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/classify/__init__.py +0 -0
  178. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/classify/predict.py +0 -0
  179. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/classify/train.py +0 -0
  180. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/classify/val.py +0 -0
  181. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/detect/__init__.py +0 -0
  182. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/detect/predict.py +0 -0
  183. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/detect/train.py +0 -0
  184. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/detect/val.py +0 -0
  185. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/model.py +0 -0
  186. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/obb/__init__.py +0 -0
  187. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/obb/predict.py +0 -0
  188. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/obb/train.py +0 -0
  189. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/obb/val.py +0 -0
  190. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/pose/__init__.py +0 -0
  191. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/pose/predict.py +0 -0
  192. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/pose/train.py +0 -0
  193. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/pose/val.py +0 -0
  194. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/segment/__init__.py +0 -0
  195. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/segment/predict.py +0 -0
  196. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/segment/train.py +0 -0
  197. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/segment/val.py +0 -0
  198. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/world/__init__.py +0 -0
  199. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/world/train.py +0 -0
  200. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/world/train_world.py +0 -0
  201. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  202. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  203. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/yoloe/train.py +0 -0
  204. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  205. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/models/yolo/yoloe/val.py +0 -0
  206. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/nn/__init__.py +0 -0
  207. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/nn/modules/__init__.py +0 -0
  208. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/nn/modules/activation.py +0 -0
  209. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/nn/modules/block.py +0 -0
  210. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/nn/modules/conv.py +0 -0
  211. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/nn/modules/head.py +0 -0
  212. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/nn/modules/transformer.py +0 -0
  213. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/nn/modules/utils.py +0 -0
  214. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/nn/text_model.py +0 -0
  215. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/py.typed +0 -0
  216. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/__init__.py +0 -0
  217. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/ai_gym.py +0 -0
  218. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/analytics.py +0 -0
  219. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/config.py +0 -0
  220. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/distance_calculation.py +0 -0
  221. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/heatmap.py +0 -0
  222. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/instance_segmentation.py +0 -0
  223. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/object_blurrer.py +0 -0
  224. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/object_counter.py +0 -0
  225. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/object_cropper.py +0 -0
  226. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/parking_management.py +0 -0
  227. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/queue_management.py +0 -0
  228. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/region_counter.py +0 -0
  229. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/security_alarm.py +0 -0
  230. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/similarity_search.py +0 -0
  231. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/solutions.py +0 -0
  232. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/speed_estimation.py +0 -0
  233. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/streamlit_inference.py +0 -0
  234. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/templates/similarity-search.html +0 -0
  235. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/trackzone.py +0 -0
  236. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/solutions/vision_eye.py +0 -0
  237. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/trackers/__init__.py +0 -0
  238. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/trackers/basetrack.py +0 -0
  239. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/trackers/bot_sort.py +0 -0
  240. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/trackers/byte_tracker.py +0 -0
  241. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/trackers/track.py +0 -0
  242. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/trackers/utils/__init__.py +0 -0
  243. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/trackers/utils/gmc.py +0 -0
  244. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  245. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/trackers/utils/matching.py +0 -0
  246. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/autobatch.py +0 -0
  247. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/autodevice.py +0 -0
  248. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/benchmarks.py +0 -0
  249. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/callbacks/__init__.py +0 -0
  250. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/callbacks/base.py +0 -0
  251. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/callbacks/clearml.py +0 -0
  252. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/callbacks/comet.py +0 -0
  253. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/callbacks/dvc.py +0 -0
  254. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/callbacks/hub.py +0 -0
  255. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/callbacks/mlflow.py +0 -0
  256. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/callbacks/neptune.py +0 -0
  257. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/callbacks/platform.py +0 -0
  258. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/callbacks/raytune.py +0 -0
  259. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  260. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/callbacks/wb.py +0 -0
  261. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/checks.py +0 -0
  262. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/dist.py +0 -0
  263. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/downloads.py +0 -0
  264. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/errors.py +0 -0
  265. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/export.py +0 -0
  266. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/files.py +0 -0
  267. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/instance.py +0 -0
  268. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/logger.py +0 -0
  269. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/loss.py +0 -0
  270. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/metrics.py +0 -0
  271. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/ops.py +0 -0
  272. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/patches.py +0 -0
  273. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/plotting.py +0 -0
  274. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/tal.py +0 -0
  275. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/tqdm.py +0 -0
  276. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/triton.py +0 -0
  277. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics/utils/tuner.py +0 -0
  278. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics.egg-info/SOURCES.txt +0 -0
  279. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics.egg-info/dependency_links.txt +0 -0
  280. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics.egg-info/entry_points.txt +0 -0
  281. {ultralytics-8.3.188 → ultralytics-8.3.189}/ultralytics.egg-info/requires.txt +0 -0
  282. {ultralytics-8.3.188 → ultralytics-8.3.189}/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.188
3
+ Version: 8.3.189
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>
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.188"
3
+ __version__ = "8.3.189"
4
4
 
5
5
  import os
6
6
 
@@ -14,7 +14,7 @@ import torch
14
14
  import torch.nn as nn
15
15
  from PIL import Image
16
16
 
17
- from ultralytics.utils import ARM64, IS_JETSON, LINUX, LOGGER, PYTHON_VERSION, ROOT, YAML
17
+ from ultralytics.utils import ARM64, IS_JETSON, LINUX, LOGGER, PYTHON_VERSION, ROOT, YAML, is_jetson
18
18
  from ultralytics.utils.checks import check_requirements, check_suffix, check_version, check_yaml, is_rockchip
19
19
  from ultralytics.utils.downloads import attempt_download_asset, is_url
20
20
 
@@ -194,9 +194,12 @@ class AutoBackend(nn.Module):
194
194
 
195
195
  # In-memory PyTorch model
196
196
  if nn_module:
197
- model = weights.to(device)
198
197
  if fuse:
199
- model = model.fuse(verbose=verbose)
198
+ if IS_JETSON and is_jetson(jetpack=5):
199
+ # Jetson Jetpack5 requires device before fuse https://github.com/ultralytics/ultralytics/pull/21028
200
+ weights = weights.to(device)
201
+ weights = weights.fuse(verbose=verbose)
202
+ model = weights.to(device)
200
203
  if hasattr(model, "kpt_shape"):
201
204
  kpt_shape = model.kpt_shape # pose-only
202
205
  stride = max(int(model.stride.max()), 32) # model stride
@@ -1500,7 +1500,7 @@ def attempt_load_weights(weights, device=None, inplace=True, fuse=False):
1500
1500
  for w in weights if isinstance(weights, list) else [weights]:
1501
1501
  ckpt, w = torch_safe_load(w) # load ckpt
1502
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"]).to(device).float() # FP32 model
1503
+ model = (ckpt.get("ema") or ckpt["model"]).float() # FP32 model
1504
1504
 
1505
1505
  # Model compatibility updates
1506
1506
  model.args = args # attach args to model
@@ -1510,7 +1510,7 @@ def attempt_load_weights(weights, device=None, inplace=True, fuse=False):
1510
1510
  model.stride = torch.tensor([32.0])
1511
1511
 
1512
1512
  # Append
1513
- ensemble.append(model.fuse().eval() if fuse and hasattr(model, "fuse") else model.eval()) # model in eval mode
1513
+ ensemble.append((model.fuse().eval() if fuse and hasattr(model, "fuse") else model.eval()).to(device))
1514
1514
 
1515
1515
  # Module updates
1516
1516
  for m in ensemble.modules():
@@ -12,6 +12,7 @@ import subprocess
12
12
  import sys
13
13
  import threading
14
14
  import time
15
+ from functools import lru_cache
15
16
  from pathlib import Path
16
17
  from threading import Lock
17
18
  from types import SimpleNamespace
@@ -727,14 +728,26 @@ def is_raspberrypi() -> bool:
727
728
  return "rpi" in DEVICE_MODEL
728
729
 
729
730
 
730
- def is_jetson() -> bool:
731
+ @lru_cache(maxsize=3)
732
+ def is_jetson(jetpack=None) -> bool:
731
733
  """
732
734
  Determine if the Python environment is running on an NVIDIA Jetson device.
733
735
 
736
+ Args:
737
+ jetpack (int | None): If specified, check for specific JetPack version (4, 5, 6).
738
+
734
739
  Returns:
735
740
  (bool): True if running on an NVIDIA Jetson device, False otherwise.
736
741
  """
737
- return "tegra" in DEVICE_MODEL
742
+ if jetson := ("tegra" in DEVICE_MODEL):
743
+ if jetpack:
744
+ try:
745
+ content = open("/etc/nv_tegra_release").read()
746
+ version_map = {4: "R32", 5: "R35", 6: "R36"} # JetPack to L4T major version mapping
747
+ return jetpack in version_map and version_map[jetpack] in content
748
+ except Exception:
749
+ return False
750
+ return jetson
738
751
 
739
752
 
740
753
  def is_online() -> bool:
@@ -250,68 +250,71 @@ def time_sync():
250
250
 
251
251
 
252
252
  def fuse_conv_and_bn(conv, bn):
253
- """Fuse Conv2d() and BatchNorm2d() layers."""
254
- fusedconv = (
255
- nn.Conv2d(
256
- conv.in_channels,
257
- conv.out_channels,
258
- kernel_size=conv.kernel_size,
259
- stride=conv.stride,
260
- padding=conv.padding,
261
- dilation=conv.dilation,
262
- groups=conv.groups,
263
- bias=True,
264
- )
265
- .requires_grad_(False)
266
- .to(conv.weight.device)
267
- )
253
+ """
254
+ Fuse Conv2d and BatchNorm2d layers for inference optimization.
255
+
256
+ Args:
257
+ conv (nn.Conv2d): Convolutional layer to fuse.
258
+ bn (nn.BatchNorm2d): Batch normalization layer to fuse.
259
+
260
+ Returns:
261
+ (nn.Conv2d): The fused convolutional layer with gradients disabled.
268
262
 
269
- # Prepare filters
263
+ Example:
264
+ >>> conv = nn.Conv2d(3, 16, 3)
265
+ >>> bn = nn.BatchNorm2d(16)
266
+ >>> fused_conv = fuse_conv_and_bn(conv, bn)
267
+ """
268
+ # Compute fused weights
270
269
  w_conv = conv.weight.view(conv.out_channels, -1)
271
270
  w_bn = torch.diag(bn.weight.div(torch.sqrt(bn.eps + bn.running_var)))
272
- fusedconv.weight.copy_(torch.mm(w_bn, w_conv).view(fusedconv.weight.shape))
271
+ conv.weight.data = torch.mm(w_bn, w_conv).view(conv.weight.shape)
273
272
 
274
- # Prepare spatial bias
275
- b_conv = (
276
- torch.zeros(conv.weight.shape[0], dtype=conv.weight.dtype, device=conv.weight.device)
277
- if conv.bias is None
278
- else conv.bias
279
- )
273
+ # Compute fused bias
274
+ b_conv = torch.zeros(conv.out_channels, device=conv.weight.device) if conv.bias is None else conv.bias
280
275
  b_bn = bn.bias - bn.weight.mul(bn.running_mean).div(torch.sqrt(bn.running_var + bn.eps))
281
- fusedconv.bias.copy_(torch.mm(w_bn, b_conv.reshape(-1, 1)).reshape(-1) + b_bn)
276
+ fused_bias = torch.mm(w_bn, b_conv.reshape(-1, 1)).reshape(-1) + b_bn
277
+
278
+ if conv.bias is None:
279
+ conv.register_parameter("bias", nn.Parameter(fused_bias))
280
+ else:
281
+ conv.bias.data = fused_bias
282
282
 
283
- return fusedconv
283
+ return conv.requires_grad_(False)
284
284
 
285
285
 
286
286
  def fuse_deconv_and_bn(deconv, bn):
287
- """Fuse ConvTranspose2d() and BatchNorm2d() layers."""
288
- fuseddconv = (
289
- nn.ConvTranspose2d(
290
- deconv.in_channels,
291
- deconv.out_channels,
292
- kernel_size=deconv.kernel_size,
293
- stride=deconv.stride,
294
- padding=deconv.padding,
295
- output_padding=deconv.output_padding,
296
- dilation=deconv.dilation,
297
- groups=deconv.groups,
298
- bias=True,
299
- )
300
- .requires_grad_(False)
301
- .to(deconv.weight.device)
302
- )
287
+ """
288
+ Fuse ConvTranspose2d and BatchNorm2d layers for inference optimization.
303
289
 
304
- # Prepare filters
290
+ Args:
291
+ deconv (nn.ConvTranspose2d): Transposed convolutional layer to fuse.
292
+ bn (nn.BatchNorm2d): Batch normalization layer to fuse.
293
+
294
+ Returns:
295
+ (nn.ConvTranspose2d): The fused transposed convolutional layer with gradients disabled.
296
+
297
+ Example:
298
+ >>> deconv = nn.ConvTranspose2d(16, 3, 3)
299
+ >>> bn = nn.BatchNorm2d(3)
300
+ >>> fused_deconv = fuse_deconv_and_bn(deconv, bn)
301
+ """
302
+ # Compute fused weights
305
303
  w_deconv = deconv.weight.view(deconv.out_channels, -1)
306
304
  w_bn = torch.diag(bn.weight.div(torch.sqrt(bn.eps + bn.running_var)))
307
- fuseddconv.weight.copy_(torch.mm(w_bn, w_deconv).view(fuseddconv.weight.shape))
305
+ deconv.weight.data = torch.mm(w_bn, w_deconv).view(deconv.weight.shape)
308
306
 
309
- # Prepare spatial bias
310
- b_conv = torch.zeros(deconv.weight.shape[1], device=deconv.weight.device) if deconv.bias is None else deconv.bias
307
+ # Compute fused bias
308
+ b_conv = torch.zeros(deconv.out_channels, device=deconv.weight.device) if deconv.bias is None else deconv.bias
311
309
  b_bn = bn.bias - bn.weight.mul(bn.running_mean).div(torch.sqrt(bn.running_var + bn.eps))
312
- fuseddconv.bias.copy_(torch.mm(w_bn, b_conv.reshape(-1, 1)).reshape(-1) + b_bn)
310
+ fused_bias = torch.mm(w_bn, b_conv.reshape(-1, 1)).reshape(-1) + b_bn
311
+
312
+ if deconv.bias is None:
313
+ deconv.register_parameter("bias", nn.Parameter(fused_bias))
314
+ else:
315
+ deconv.bias.data = fused_bias
313
316
 
314
- return fuseddconv
317
+ return deconv.requires_grad_(False)
315
318
 
316
319
 
317
320
  def model_info(model, detailed=False, verbose=True, imgsz=640):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.188
3
+ Version: 8.3.189
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>
File without changes
File without changes
File without changes