ultralytics 8.3.30__tar.gz → 8.3.31__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 (241) hide show
  1. {ultralytics-8.3.30/ultralytics.egg-info → ultralytics-8.3.31}/PKG-INFO +1 -1
  2. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/__init__.py +1 -1
  3. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/engine/trainer.py +11 -6
  4. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/detect/train.py +7 -0
  5. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/autobatch.py +8 -4
  6. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/tal.py +2 -0
  7. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/torch_utils.py +9 -1
  8. {ultralytics-8.3.30 → ultralytics-8.3.31/ultralytics.egg-info}/PKG-INFO +1 -1
  9. {ultralytics-8.3.30 → ultralytics-8.3.31}/LICENSE +0 -0
  10. {ultralytics-8.3.30 → ultralytics-8.3.31}/README.md +0 -0
  11. {ultralytics-8.3.30 → ultralytics-8.3.31}/pyproject.toml +0 -0
  12. {ultralytics-8.3.30 → ultralytics-8.3.31}/setup.cfg +0 -0
  13. {ultralytics-8.3.30 → ultralytics-8.3.31}/tests/__init__.py +0 -0
  14. {ultralytics-8.3.30 → ultralytics-8.3.31}/tests/conftest.py +0 -0
  15. {ultralytics-8.3.30 → ultralytics-8.3.31}/tests/test_cli.py +0 -0
  16. {ultralytics-8.3.30 → ultralytics-8.3.31}/tests/test_cuda.py +0 -0
  17. {ultralytics-8.3.30 → ultralytics-8.3.31}/tests/test_engine.py +0 -0
  18. {ultralytics-8.3.30 → ultralytics-8.3.31}/tests/test_exports.py +0 -0
  19. {ultralytics-8.3.30 → ultralytics-8.3.31}/tests/test_integrations.py +0 -0
  20. {ultralytics-8.3.30 → ultralytics-8.3.31}/tests/test_python.py +0 -0
  21. {ultralytics-8.3.30 → ultralytics-8.3.31}/tests/test_solutions.py +0 -0
  22. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/assets/bus.jpg +0 -0
  23. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/assets/zidane.jpg +0 -0
  24. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/__init__.py +0 -0
  25. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  26. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  27. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  28. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  29. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  30. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  31. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  32. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  33. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  34. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  35. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  36. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  37. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  38. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/coco.yaml +0 -0
  39. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  40. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  41. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  42. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  43. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  44. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  45. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  46. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  47. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  48. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  49. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  50. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/signature.yaml +0 -0
  51. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  52. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/datasets/xView.yaml +0 -0
  53. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/default.yaml +0 -0
  54. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  55. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  56. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  57. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  58. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  59. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  60. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  61. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  62. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  63. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  64. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  65. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  66. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  67. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  68. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  69. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  70. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  71. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  72. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  73. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  74. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  75. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  76. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  77. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  78. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  79. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  80. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  81. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  82. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  83. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  84. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  85. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  86. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  87. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  88. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  89. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  90. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  91. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  92. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  93. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  94. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  95. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  96. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  97. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  98. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  99. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/solutions/default.yaml +0 -0
  100. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  101. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  102. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/data/__init__.py +0 -0
  103. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/data/annotator.py +0 -0
  104. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/data/augment.py +0 -0
  105. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/data/base.py +0 -0
  106. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/data/build.py +0 -0
  107. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/data/converter.py +0 -0
  108. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/data/dataset.py +0 -0
  109. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/data/loaders.py +0 -0
  110. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/data/split_dota.py +0 -0
  111. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/data/utils.py +0 -0
  112. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/engine/__init__.py +0 -0
  113. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/engine/exporter.py +0 -0
  114. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/engine/model.py +0 -0
  115. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/engine/predictor.py +0 -0
  116. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/engine/results.py +0 -0
  117. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/engine/tuner.py +0 -0
  118. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/engine/validator.py +0 -0
  119. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/hub/__init__.py +0 -0
  120. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/hub/auth.py +0 -0
  121. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/hub/google/__init__.py +0 -0
  122. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/hub/session.py +0 -0
  123. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/hub/utils.py +0 -0
  124. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/__init__.py +0 -0
  125. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/fastsam/__init__.py +0 -0
  126. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/fastsam/model.py +0 -0
  127. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/fastsam/predict.py +0 -0
  128. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/fastsam/utils.py +0 -0
  129. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/fastsam/val.py +0 -0
  130. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/nas/__init__.py +0 -0
  131. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/nas/model.py +0 -0
  132. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/nas/predict.py +0 -0
  133. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/nas/val.py +0 -0
  134. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/rtdetr/__init__.py +0 -0
  135. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/rtdetr/model.py +0 -0
  136. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/rtdetr/predict.py +0 -0
  137. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/rtdetr/train.py +0 -0
  138. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/rtdetr/val.py +0 -0
  139. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/sam/__init__.py +0 -0
  140. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/sam/amg.py +0 -0
  141. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/sam/build.py +0 -0
  142. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/sam/model.py +0 -0
  143. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/sam/modules/__init__.py +0 -0
  144. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/sam/modules/blocks.py +0 -0
  145. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/sam/modules/decoders.py +0 -0
  146. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/sam/modules/encoders.py +0 -0
  147. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  148. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/sam/modules/sam.py +0 -0
  149. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  150. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/sam/modules/transformer.py +0 -0
  151. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/sam/modules/utils.py +0 -0
  152. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/sam/predict.py +0 -0
  153. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/utils/__init__.py +0 -0
  154. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/utils/loss.py +0 -0
  155. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/utils/ops.py +0 -0
  156. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/__init__.py +0 -0
  157. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/classify/__init__.py +0 -0
  158. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/classify/predict.py +0 -0
  159. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/classify/train.py +0 -0
  160. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/classify/val.py +0 -0
  161. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/detect/__init__.py +0 -0
  162. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/detect/predict.py +0 -0
  163. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/detect/val.py +0 -0
  164. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/model.py +0 -0
  165. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/obb/__init__.py +0 -0
  166. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/obb/predict.py +0 -0
  167. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/obb/train.py +0 -0
  168. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/obb/val.py +0 -0
  169. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/pose/__init__.py +0 -0
  170. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/pose/predict.py +0 -0
  171. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/pose/train.py +0 -0
  172. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/pose/val.py +0 -0
  173. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/segment/__init__.py +0 -0
  174. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/segment/predict.py +0 -0
  175. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/segment/train.py +0 -0
  176. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/segment/val.py +0 -0
  177. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/world/__init__.py +0 -0
  178. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/world/train.py +0 -0
  179. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/models/yolo/world/train_world.py +0 -0
  180. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/nn/__init__.py +0 -0
  181. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/nn/autobackend.py +0 -0
  182. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/nn/modules/__init__.py +0 -0
  183. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/nn/modules/activation.py +0 -0
  184. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/nn/modules/block.py +0 -0
  185. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/nn/modules/conv.py +0 -0
  186. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/nn/modules/head.py +0 -0
  187. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/nn/modules/transformer.py +0 -0
  188. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/nn/modules/utils.py +0 -0
  189. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/nn/tasks.py +0 -0
  190. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/solutions/__init__.py +0 -0
  191. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/solutions/ai_gym.py +0 -0
  192. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/solutions/analytics.py +0 -0
  193. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/solutions/distance_calculation.py +0 -0
  194. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/solutions/heatmap.py +0 -0
  195. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/solutions/object_counter.py +0 -0
  196. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/solutions/parking_management.py +0 -0
  197. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/solutions/queue_management.py +0 -0
  198. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/solutions/region_counter.py +0 -0
  199. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/solutions/solutions.py +0 -0
  200. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/solutions/speed_estimation.py +0 -0
  201. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/solutions/streamlit_inference.py +0 -0
  202. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/trackers/__init__.py +0 -0
  203. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/trackers/basetrack.py +0 -0
  204. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/trackers/bot_sort.py +0 -0
  205. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/trackers/byte_tracker.py +0 -0
  206. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/trackers/track.py +0 -0
  207. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/trackers/utils/__init__.py +0 -0
  208. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/trackers/utils/gmc.py +0 -0
  209. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  210. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/trackers/utils/matching.py +0 -0
  211. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/__init__.py +0 -0
  212. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/benchmarks.py +0 -0
  213. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/callbacks/__init__.py +0 -0
  214. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/callbacks/base.py +0 -0
  215. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/callbacks/clearml.py +0 -0
  216. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/callbacks/comet.py +0 -0
  217. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/callbacks/dvc.py +0 -0
  218. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/callbacks/hub.py +0 -0
  219. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/callbacks/mlflow.py +0 -0
  220. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/callbacks/neptune.py +0 -0
  221. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/callbacks/raytune.py +0 -0
  222. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  223. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/callbacks/wb.py +0 -0
  224. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/checks.py +0 -0
  225. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/dist.py +0 -0
  226. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/downloads.py +0 -0
  227. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/errors.py +0 -0
  228. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/files.py +0 -0
  229. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/instance.py +0 -0
  230. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/loss.py +0 -0
  231. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/metrics.py +0 -0
  232. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/ops.py +0 -0
  233. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/patches.py +0 -0
  234. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/plotting.py +0 -0
  235. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/triton.py +0 -0
  236. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics/utils/tuner.py +0 -0
  237. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics.egg-info/SOURCES.txt +0 -0
  238. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics.egg-info/dependency_links.txt +0 -0
  239. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics.egg-info/entry_points.txt +0 -0
  240. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics.egg-info/requires.txt +0 -0
  241. {ultralytics-8.3.30 → ultralytics-8.3.31}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.3.30
3
+ Version: 8.3.31
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 YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.3.30"
3
+ __version__ = "8.3.31"
4
4
 
5
5
  import os
6
6
 
@@ -279,12 +279,7 @@ class BaseTrainer:
279
279
 
280
280
  # Batch size
281
281
  if self.batch_size < 1 and RANK == -1: # single-GPU only, estimate best batch size
282
- self.args.batch = self.batch_size = check_train_batch_size(
283
- model=self.model,
284
- imgsz=self.args.imgsz,
285
- amp=self.amp,
286
- batch=self.batch_size,
287
- )
282
+ self.args.batch = self.batch_size = self.auto_batch()
288
283
 
289
284
  # Dataloaders
290
285
  batch_size = self.batch_size // max(world_size, 1)
@@ -478,6 +473,16 @@ class BaseTrainer:
478
473
  self._clear_memory()
479
474
  self.run_callbacks("teardown")
480
475
 
476
+ def auto_batch(self, max_num_obj=0):
477
+ """Get batch size by calculating memory occupation of model."""
478
+ return check_train_batch_size(
479
+ model=self.model,
480
+ imgsz=self.args.imgsz,
481
+ amp=self.amp,
482
+ batch=self.batch_size,
483
+ max_num_obj=max_num_obj,
484
+ ) # returns batch size
485
+
481
486
  def _get_memory(self):
482
487
  """Get accelerator memory utilization in GB."""
483
488
  if self.device.type == "mps":
@@ -141,3 +141,10 @@ class DetectionTrainer(BaseTrainer):
141
141
  boxes = np.concatenate([lb["bboxes"] for lb in self.train_loader.dataset.labels], 0)
142
142
  cls = np.concatenate([lb["cls"] for lb in self.train_loader.dataset.labels], 0)
143
143
  plot_labels(boxes, cls.squeeze(), names=self.data["names"], save_dir=self.save_dir, on_plot=self.on_plot)
144
+
145
+ def auto_batch(self):
146
+ """Get batch size by calculating memory occupation of model."""
147
+ train_dataset = self.build_dataset(self.trainset, mode="train", batch=16)
148
+ # 4 for mosaic augmentation
149
+ max_num_obj = max(len(l["cls"]) for l in train_dataset.labels) * 4
150
+ return super().auto_batch(max_num_obj)
@@ -11,7 +11,7 @@ from ultralytics.utils import DEFAULT_CFG, LOGGER, colorstr
11
11
  from ultralytics.utils.torch_utils import autocast, profile
12
12
 
13
13
 
14
- def check_train_batch_size(model, imgsz=640, amp=True, batch=-1):
14
+ def check_train_batch_size(model, imgsz=640, amp=True, batch=-1, max_num_obj=1):
15
15
  """
16
16
  Compute optimal YOLO training batch size using the autobatch() function.
17
17
 
@@ -20,6 +20,7 @@ def check_train_batch_size(model, imgsz=640, amp=True, batch=-1):
20
20
  imgsz (int, optional): Image size used for training.
21
21
  amp (bool, optional): Use automatic mixed precision if True.
22
22
  batch (float, optional): Fraction of GPU memory to use. If -1, use default.
23
+ max_num_obj (int, optional): The maximum number of objects from dataset.
23
24
 
24
25
  Returns:
25
26
  (int): Optimal batch size computed using the autobatch() function.
@@ -29,10 +30,12 @@ def check_train_batch_size(model, imgsz=640, amp=True, batch=-1):
29
30
  Otherwise, a default fraction of 0.6 is used.
30
31
  """
31
32
  with autocast(enabled=amp):
32
- return autobatch(deepcopy(model).train(), imgsz, fraction=batch if 0.0 < batch < 1.0 else 0.6)
33
+ return autobatch(
34
+ deepcopy(model).train(), imgsz, fraction=batch if 0.0 < batch < 1.0 else 0.6, max_num_obj=max_num_obj
35
+ )
33
36
 
34
37
 
35
- def autobatch(model, imgsz=640, fraction=0.60, batch_size=DEFAULT_CFG.batch):
38
+ def autobatch(model, imgsz=640, fraction=0.60, batch_size=DEFAULT_CFG.batch, max_num_obj=1):
36
39
  """
37
40
  Automatically estimate the best YOLO batch size to use a fraction of the available CUDA memory.
38
41
 
@@ -41,6 +44,7 @@ def autobatch(model, imgsz=640, fraction=0.60, batch_size=DEFAULT_CFG.batch):
41
44
  imgsz (int, optional): The image size used as input for the YOLO model. Defaults to 640.
42
45
  fraction (float, optional): The fraction of available CUDA memory to use. Defaults to 0.60.
43
46
  batch_size (int, optional): The default batch size to use if an error is detected. Defaults to 16.
47
+ max_num_obj (int, optional): The maximum number of objects from dataset.
44
48
 
45
49
  Returns:
46
50
  (int): The optimal batch size.
@@ -70,7 +74,7 @@ def autobatch(model, imgsz=640, fraction=0.60, batch_size=DEFAULT_CFG.batch):
70
74
  batch_sizes = [1, 2, 4, 8, 16] if t < 16 else [1, 2, 4, 8, 16, 32, 64]
71
75
  try:
72
76
  img = [torch.empty(b, 3, imgsz, imgsz) for b in batch_sizes]
73
- results = profile(img, model, n=1, device=device)
77
+ results = profile(img, model, n=1, device=device, max_num_obj=max_num_obj)
74
78
 
75
79
  # Fit a solution
76
80
  y = [x[2] for x in results if x] # memory [2]
@@ -3,6 +3,7 @@
3
3
  import torch
4
4
  import torch.nn as nn
5
5
 
6
+ from . import LOGGER
6
7
  from .checks import check_version
7
8
  from .metrics import bbox_iou, probiou
8
9
  from .ops import xywhr2xyxyxyxy
@@ -73,6 +74,7 @@ class TaskAlignedAssigner(nn.Module):
73
74
  return self._forward(pd_scores, pd_bboxes, anc_points, gt_labels, gt_bboxes, mask_gt)
74
75
  except torch.OutOfMemoryError:
75
76
  # Move tensors to CPU, compute, then move back to original device
77
+ LOGGER.warning("WARNING: CUDA OutOfMemoryError in TaskAlignedAssigner, using CPU")
76
78
  cpu_tensors = [t.cpu() for t in (pd_scores, pd_bboxes, anc_points, gt_labels, gt_bboxes, mask_gt)]
77
79
  result = self._forward(*cpu_tensors)
78
80
  return tuple(t.to(device) for t in result)
@@ -623,7 +623,7 @@ def convert_optimizer_state_dict_to_fp16(state_dict):
623
623
  return state_dict
624
624
 
625
625
 
626
- def profile(input, ops, n=10, device=None):
626
+ def profile(input, ops, n=10, device=None, max_num_obj=0):
627
627
  """
628
628
  Ultralytics speed, memory and FLOPs profiler.
629
629
 
@@ -671,6 +671,14 @@ def profile(input, ops, n=10, device=None):
671
671
  t[2] = float("nan")
672
672
  tf += (t[1] - t[0]) * 1000 / n # ms per op forward
673
673
  tb += (t[2] - t[1]) * 1000 / n # ms per op backward
674
+ if max_num_obj: # simulate training with predictions per image grid (for AutoBatch)
675
+ torch.randn(
676
+ x.shape[0],
677
+ max_num_obj,
678
+ int(sum([(x.shape[-1] / s) * (x.shape[-2] / s) for s in m.stride.tolist()])),
679
+ device=device,
680
+ dtype=torch.float32,
681
+ )
674
682
  mem = torch.cuda.memory_reserved() / 1e9 if torch.cuda.is_available() else 0 # (GB)
675
683
  s_in, s_out = (tuple(x.shape) if isinstance(x, torch.Tensor) else "list" for x in (x, y)) # shapes
676
684
  p = sum(x.numel() for x in m.parameters()) if isinstance(m, nn.Module) else 0 # parameters
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.3.30
3
+ Version: 8.3.31
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