ultralytics 8.3.62__tar.gz → 8.3.64__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 (246) hide show
  1. {ultralytics-8.3.62/ultralytics.egg-info → ultralytics-8.3.64}/PKG-INFO +1 -1
  2. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/__init__.py +1 -1
  3. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/data/build.py +5 -4
  4. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/data/utils.py +1 -1
  5. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/engine/exporter.py +12 -4
  6. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/engine/results.py +1 -1
  7. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/engine/trainer.py +1 -0
  8. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/engine/tuner.py +2 -1
  9. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/nn/modules/block.py +3 -3
  10. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/nn/tasks.py +8 -6
  11. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/__init__.py +11 -1
  12. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/checks.py +13 -0
  13. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/torch_utils.py +2 -9
  14. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/tuner.py +4 -2
  15. {ultralytics-8.3.62 → ultralytics-8.3.64/ultralytics.egg-info}/PKG-INFO +1 -1
  16. {ultralytics-8.3.62 → ultralytics-8.3.64}/LICENSE +0 -0
  17. {ultralytics-8.3.62 → ultralytics-8.3.64}/README.md +0 -0
  18. {ultralytics-8.3.62 → ultralytics-8.3.64}/pyproject.toml +0 -0
  19. {ultralytics-8.3.62 → ultralytics-8.3.64}/setup.cfg +0 -0
  20. {ultralytics-8.3.62 → ultralytics-8.3.64}/tests/__init__.py +0 -0
  21. {ultralytics-8.3.62 → ultralytics-8.3.64}/tests/conftest.py +0 -0
  22. {ultralytics-8.3.62 → ultralytics-8.3.64}/tests/test_cli.py +0 -0
  23. {ultralytics-8.3.62 → ultralytics-8.3.64}/tests/test_cuda.py +0 -0
  24. {ultralytics-8.3.62 → ultralytics-8.3.64}/tests/test_engine.py +0 -0
  25. {ultralytics-8.3.62 → ultralytics-8.3.64}/tests/test_exports.py +0 -0
  26. {ultralytics-8.3.62 → ultralytics-8.3.64}/tests/test_integrations.py +0 -0
  27. {ultralytics-8.3.62 → ultralytics-8.3.64}/tests/test_python.py +0 -0
  28. {ultralytics-8.3.62 → ultralytics-8.3.64}/tests/test_solutions.py +0 -0
  29. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/assets/bus.jpg +0 -0
  30. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/assets/zidane.jpg +0 -0
  31. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/__init__.py +0 -0
  32. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  33. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  34. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  35. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  36. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  37. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  38. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  39. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  40. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  41. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  42. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  43. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  44. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  45. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/coco.yaml +0 -0
  46. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  47. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  48. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  49. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  50. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  51. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  52. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  53. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  54. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  55. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  56. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  57. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  58. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  59. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/signature.yaml +0 -0
  60. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  61. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/datasets/xView.yaml +0 -0
  62. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/default.yaml +0 -0
  63. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  64. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  65. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  66. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  67. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  68. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  69. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  70. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  71. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  72. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  73. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  74. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  75. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  76. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  77. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  78. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  79. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  80. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  81. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  82. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  83. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  84. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  85. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  86. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  87. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  88. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  89. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  90. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  91. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  92. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  93. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  94. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  95. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  96. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  97. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  98. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  99. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  100. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  101. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  102. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  103. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  104. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  105. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  106. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  107. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  108. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  109. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/solutions/default.yaml +0 -0
  110. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  111. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  112. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/data/__init__.py +0 -0
  113. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/data/annotator.py +0 -0
  114. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/data/augment.py +0 -0
  115. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/data/base.py +0 -0
  116. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/data/converter.py +0 -0
  117. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/data/dataset.py +0 -0
  118. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/data/loaders.py +0 -0
  119. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/data/split_dota.py +0 -0
  120. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/engine/__init__.py +0 -0
  121. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/engine/model.py +0 -0
  122. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/engine/predictor.py +0 -0
  123. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/engine/validator.py +0 -0
  124. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/hub/__init__.py +0 -0
  125. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/hub/auth.py +0 -0
  126. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/hub/google/__init__.py +0 -0
  127. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/hub/session.py +0 -0
  128. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/hub/utils.py +0 -0
  129. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/__init__.py +0 -0
  130. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/fastsam/__init__.py +0 -0
  131. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/fastsam/model.py +0 -0
  132. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/fastsam/predict.py +0 -0
  133. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/fastsam/utils.py +0 -0
  134. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/fastsam/val.py +0 -0
  135. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/nas/__init__.py +0 -0
  136. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/nas/model.py +0 -0
  137. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/nas/predict.py +0 -0
  138. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/nas/val.py +0 -0
  139. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/rtdetr/__init__.py +0 -0
  140. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/rtdetr/model.py +0 -0
  141. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/rtdetr/predict.py +0 -0
  142. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/rtdetr/train.py +0 -0
  143. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/rtdetr/val.py +0 -0
  144. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/sam/__init__.py +0 -0
  145. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/sam/amg.py +0 -0
  146. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/sam/build.py +0 -0
  147. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/sam/model.py +0 -0
  148. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/sam/modules/__init__.py +0 -0
  149. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/sam/modules/blocks.py +0 -0
  150. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/sam/modules/decoders.py +0 -0
  151. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/sam/modules/encoders.py +0 -0
  152. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  153. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/sam/modules/sam.py +0 -0
  154. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  155. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/sam/modules/transformer.py +0 -0
  156. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/sam/modules/utils.py +0 -0
  157. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/sam/predict.py +0 -0
  158. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/utils/__init__.py +0 -0
  159. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/utils/loss.py +0 -0
  160. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/utils/ops.py +0 -0
  161. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/__init__.py +0 -0
  162. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/classify/__init__.py +0 -0
  163. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/classify/predict.py +0 -0
  164. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/classify/train.py +0 -0
  165. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/classify/val.py +0 -0
  166. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/detect/__init__.py +0 -0
  167. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/detect/predict.py +0 -0
  168. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/detect/train.py +0 -0
  169. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/detect/val.py +0 -0
  170. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/model.py +0 -0
  171. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/obb/__init__.py +0 -0
  172. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/obb/predict.py +0 -0
  173. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/obb/train.py +0 -0
  174. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/obb/val.py +0 -0
  175. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/pose/__init__.py +0 -0
  176. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/pose/predict.py +0 -0
  177. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/pose/train.py +0 -0
  178. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/pose/val.py +0 -0
  179. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/segment/__init__.py +0 -0
  180. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/segment/predict.py +0 -0
  181. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/segment/train.py +0 -0
  182. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/segment/val.py +0 -0
  183. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/world/__init__.py +0 -0
  184. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/world/train.py +0 -0
  185. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/models/yolo/world/train_world.py +0 -0
  186. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/nn/__init__.py +0 -0
  187. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/nn/autobackend.py +0 -0
  188. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/nn/modules/__init__.py +0 -0
  189. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/nn/modules/activation.py +0 -0
  190. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/nn/modules/conv.py +0 -0
  191. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/nn/modules/head.py +0 -0
  192. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/nn/modules/transformer.py +0 -0
  193. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/nn/modules/utils.py +0 -0
  194. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/solutions/__init__.py +0 -0
  195. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/solutions/ai_gym.py +0 -0
  196. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/solutions/analytics.py +0 -0
  197. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/solutions/distance_calculation.py +0 -0
  198. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/solutions/heatmap.py +0 -0
  199. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/solutions/object_counter.py +0 -0
  200. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/solutions/parking_management.py +0 -0
  201. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/solutions/queue_management.py +0 -0
  202. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/solutions/region_counter.py +0 -0
  203. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/solutions/security_alarm.py +0 -0
  204. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/solutions/solutions.py +0 -0
  205. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/solutions/speed_estimation.py +0 -0
  206. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/solutions/streamlit_inference.py +0 -0
  207. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/solutions/trackzone.py +0 -0
  208. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/trackers/__init__.py +0 -0
  209. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/trackers/basetrack.py +0 -0
  210. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/trackers/bot_sort.py +0 -0
  211. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/trackers/byte_tracker.py +0 -0
  212. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/trackers/track.py +0 -0
  213. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/trackers/utils/__init__.py +0 -0
  214. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/trackers/utils/gmc.py +0 -0
  215. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  216. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/trackers/utils/matching.py +0 -0
  217. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/autobatch.py +0 -0
  218. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/benchmarks.py +0 -0
  219. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/callbacks/__init__.py +0 -0
  220. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/callbacks/base.py +0 -0
  221. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/callbacks/clearml.py +0 -0
  222. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/callbacks/comet.py +0 -0
  223. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/callbacks/dvc.py +0 -0
  224. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/callbacks/hub.py +0 -0
  225. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/callbacks/mlflow.py +0 -0
  226. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/callbacks/neptune.py +0 -0
  227. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/callbacks/raytune.py +0 -0
  228. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  229. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/callbacks/wb.py +0 -0
  230. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/dist.py +0 -0
  231. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/downloads.py +0 -0
  232. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/errors.py +0 -0
  233. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/files.py +0 -0
  234. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/instance.py +0 -0
  235. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/loss.py +0 -0
  236. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/metrics.py +0 -0
  237. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/ops.py +0 -0
  238. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/patches.py +0 -0
  239. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/plotting.py +0 -0
  240. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/tal.py +0 -0
  241. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics/utils/triton.py +0 -0
  242. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics.egg-info/SOURCES.txt +0 -0
  243. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics.egg-info/dependency_links.txt +0 -0
  244. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics.egg-info/entry_points.txt +0 -0
  245. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics.egg-info/requires.txt +0 -0
  246. {ultralytics-8.3.62 → ultralytics-8.3.64}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ultralytics
3
- Version: 8.3.62
3
+ Version: 8.3.64
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.62"
3
+ __version__ = "8.3.64"
4
4
 
5
5
  import os
6
6
 
@@ -49,10 +49,11 @@ class InfiniteDataLoader(dataloader.DataLoader):
49
49
 
50
50
  def __del__(self):
51
51
  """Ensure that workers are terminated."""
52
- for w in self.iterator._workers: # force terminate
53
- if w.is_alive():
54
- w.terminate()
55
- self.iterator._shutdown_workers() # cleanup
52
+ if hasattr(self.iterator, "_workers"):
53
+ for w in self.iterator._workers: # force terminate
54
+ if w.is_alive():
55
+ w.terminate()
56
+ self.iterator._shutdown_workers() # cleanup
56
57
 
57
58
  def reset(self):
58
59
  """
@@ -567,7 +567,7 @@ class HUBDatasetStats:
567
567
 
568
568
  # Get dataset statistics
569
569
  if self.task == "classify":
570
- from torchvision.datasets import ImageFolder
570
+ from torchvision.datasets import ImageFolder # scope for faster 'import ultralytics'
571
571
 
572
572
  dataset = ImageFolder(self.data[split])
573
573
 
@@ -91,7 +91,13 @@ from ultralytics.utils import (
91
91
  get_default_args,
92
92
  yaml_save,
93
93
  )
94
- from ultralytics.utils.checks import check_imgsz, check_is_path_safe, check_requirements, check_version
94
+ from ultralytics.utils.checks import (
95
+ check_imgsz,
96
+ check_is_path_safe,
97
+ check_requirements,
98
+ check_version,
99
+ is_sudo_available,
100
+ )
95
101
  from ultralytics.utils.downloads import attempt_download_asset, get_github_assets, safe_download
96
102
  from ultralytics.utils.files import file_size, spaces_in_path
97
103
  from ultralytics.utils.ops import Profile
@@ -1071,7 +1077,6 @@ class Exporter:
1071
1077
  assert LINUX, f"export only supported on Linux. See {help_url}"
1072
1078
  if subprocess.run(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, shell=True).returncode != 0:
1073
1079
  LOGGER.info(f"\n{prefix} export requires Edge TPU compiler. Attempting install from {help_url}")
1074
- sudo = subprocess.run("sudo --version >/dev/null", shell=True).returncode == 0 # sudo installed on system
1075
1080
  for c in (
1076
1081
  "curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -",
1077
1082
  'echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | '
@@ -1079,7 +1084,7 @@ class Exporter:
1079
1084
  "sudo apt-get update",
1080
1085
  "sudo apt-get install edgetpu-compiler",
1081
1086
  ):
1082
- subprocess.run(c if sudo else c.replace("sudo ", ""), shell=True, check=True)
1087
+ subprocess.run(c if is_sudo_available() else c.replace("sudo ", ""), shell=True, check=True)
1083
1088
  ver = subprocess.run(cmd, shell=True, capture_output=True, check=True).stdout.decode().split()[-1]
1084
1089
 
1085
1090
  LOGGER.info(f"\n{prefix} starting export with Edge TPU compiler {ver}...")
@@ -1160,7 +1165,10 @@ class Exporter:
1160
1165
  if "openjdk 17" not in str(out.stdout):
1161
1166
  raise FileNotFoundError
1162
1167
  except FileNotFoundError:
1163
- subprocess.run(["sudo", "apt", "install", "-y", "openjdk-17-jdk", "openjdk-17-jre"], check=True)
1168
+ c = ["apt", "install", "-y", "openjdk-17-jdk", "openjdk-17-jre"]
1169
+ if is_sudo_available():
1170
+ c.insert(0, "sudo")
1171
+ subprocess.run(c, check=True)
1164
1172
 
1165
1173
  def representative_dataset_gen(dataloader=self.get_int8_calibration_dataloader(prefix)):
1166
1174
  for batch in dataloader:
@@ -839,7 +839,7 @@ class Results(SimpleClass):
839
839
  >>> df_result = results[0].to_df()
840
840
  >>> print(df_result)
841
841
  """
842
- import pandas as pd
842
+ import pandas as pd # scope for faster 'import ultralytics'
843
843
 
844
844
  return pd.DataFrame(self.summary(normalize=normalize, decimals=decimals))
845
845
 
@@ -271,6 +271,7 @@ class BaseTrainer:
271
271
  )
272
272
  if world_size > 1:
273
273
  self.model = nn.parallel.DistributedDataParallel(self.model, device_ids=[RANK], find_unused_parameters=True)
274
+ self.set_model_attributes() # set again after DDP wrapper
274
275
 
275
276
  # Check imgsz
276
277
  gs = max(int(self.model.stride.max() if hasattr(self.model, "stride") else 32), 32) # grid size (max stride)
@@ -101,7 +101,8 @@ class Tuner:
101
101
  "copy_paste": (0.0, 1.0), # segment copy-paste (probability)
102
102
  }
103
103
  self.args = get_cfg(overrides=args)
104
- self.tune_dir = get_save_dir(self.args, name="tune")
104
+ self.tune_dir = get_save_dir(self.args, name=self.args.name or "tune")
105
+ self.args.name = None # reset to not affect training directory
105
106
  self.tune_csv = self.tune_dir / "tune_results.csv"
106
107
  self.callbacks = _callbacks or callbacks.get_default_callbacks()
107
108
  self.prefix = colorstr("Tuner: ")
@@ -1131,7 +1131,7 @@ class TorchVision(nn.Module):
1131
1131
 
1132
1132
  def __init__(self, c1, c2, model, weights="DEFAULT", unwrap=True, truncate=2, split=False):
1133
1133
  """Load the model and weights from torchvision."""
1134
- import torchvision
1134
+ import torchvision # scope for faster 'import ultralytics'
1135
1135
 
1136
1136
  super().__init__()
1137
1137
  if hasattr(torchvision.models, "get_model"):
@@ -1139,10 +1139,10 @@ class TorchVision(nn.Module):
1139
1139
  else:
1140
1140
  self.m = torchvision.models.__dict__[model](pretrained=bool(weights))
1141
1141
  if unwrap:
1142
- layers = list(self.m.children())[:-truncate]
1142
+ layers = list(self.m.children())
1143
1143
  if isinstance(layers[0], nn.Sequential): # Second-level for some models like EfficientNet, Swin
1144
1144
  layers = [*list(layers[0].children()), *layers[1:]]
1145
- self.m = nn.Sequential(*layers)
1145
+ self.m = nn.Sequential(*(layers[:-truncate] if truncate else layers))
1146
1146
  self.split = split
1147
1147
  else:
1148
1148
  self.split = False
@@ -7,6 +7,7 @@ import types
7
7
  from copy import deepcopy
8
8
  from pathlib import Path
9
9
 
10
+ import thop
10
11
  import torch
11
12
  import torch.nn as nn
12
13
 
@@ -86,11 +87,6 @@ from ultralytics.utils.torch_utils import (
86
87
  time_sync,
87
88
  )
88
89
 
89
- try:
90
- import thop
91
- except ImportError:
92
- thop = None
93
-
94
90
 
95
91
  class BaseModel(nn.Module):
96
92
  """The BaseModel class serves as a base class for all the models in the Ultralytics YOLO family."""
@@ -959,7 +955,13 @@ def parse_model(d, ch, verbose=True): # model_dict, input_channels(3)
959
955
  ch = [ch]
960
956
  layers, save, c2 = [], [], ch[-1] # layers, savelist, ch out
961
957
  for i, (f, n, m, args) in enumerate(d["backbone"] + d["head"]): # from, number, module, args
962
- m = getattr(torch.nn, m[3:]) if "nn." in m else globals()[m] # get module
958
+ m = (
959
+ getattr(torch.nn, m[3:])
960
+ if "nn." in m
961
+ else getattr(__import__("torchvision").ops, m[16:])
962
+ if "torchvision.ops." in m
963
+ else globals()[m]
964
+ ) # get module
963
965
  for j, a in enumerate(args):
964
966
  if isinstance(a, str):
965
967
  with contextlib.suppress(ValueError):
@@ -577,6 +577,16 @@ def is_jupyter():
577
577
  return IS_COLAB or IS_KAGGLE
578
578
 
579
579
 
580
+ def is_runpod():
581
+ """
582
+ Check if the current script is running inside a RunPod container.
583
+
584
+ Returns:
585
+ (bool): True if running in RunPod, False otherwise.
586
+ """
587
+ return "RUNPOD_POD_ID" in os.environ
588
+
589
+
580
590
  def is_docker() -> bool:
581
591
  """
582
592
  Determine if the script is running inside a Docker container.
@@ -1042,7 +1052,7 @@ def set_sentry():
1042
1052
  auto_enabling_integrations=False,
1043
1053
  traces_sample_rate=1.0,
1044
1054
  release=__version__,
1045
- environment="production", # 'dev' or 'production'
1055
+ environment="runpod" if is_runpod() else "production",
1046
1056
  before_send=before_send,
1047
1057
  ignore_errors=[KeyboardInterrupt, FileNotFoundError],
1048
1058
  )
@@ -782,6 +782,19 @@ def cuda_is_available() -> bool:
782
782
  return cuda_device_count() > 0
783
783
 
784
784
 
785
+ def is_sudo_available() -> bool:
786
+ """
787
+ Check if the sudo command is available in the environment.
788
+
789
+ Returns:
790
+ (bool): True if the sudo command is available, False otherwise.
791
+ """
792
+ if WINDOWS:
793
+ return False
794
+ cmd = "sudo --version"
795
+ return subprocess.run(cmd, shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL).returncode == 0
796
+
797
+
785
798
  # Run checks and define constants
786
799
  check_python("3.8", hard=False, verbose=True) # check python version
787
800
  check_torchvision() # check torch-torchvision compatibility
@@ -12,6 +12,7 @@ from pathlib import Path
12
12
  from typing import Union
13
13
 
14
14
  import numpy as np
15
+ import thop
15
16
  import torch
16
17
  import torch.distributed as dist
17
18
  import torch.nn as nn
@@ -30,11 +31,6 @@ from ultralytics.utils import (
30
31
  )
31
32
  from ultralytics.utils.checks import check_version
32
33
 
33
- try:
34
- import thop
35
- except ImportError:
36
- thop = None
37
-
38
34
  # Version checks (all default to version>=min_version)
39
35
  TORCH_1_9 = check_version(torch.__version__, "1.9.0")
40
36
  TORCH_1_13 = check_version(torch.__version__, "1.13.0")
@@ -367,9 +363,6 @@ def model_info_for_loggers(trainer):
367
363
 
368
364
  def get_flops(model, imgsz=640):
369
365
  """Return a YOLO model's FLOPs."""
370
- if not thop:
371
- return 0.0 # if not installed return 0.0 GFLOPs
372
-
373
366
  try:
374
367
  model = de_parallel(model)
375
368
  p = next(model.parameters())
@@ -674,7 +667,7 @@ def profile(input, ops, n=10, device=None, max_num_obj=0):
674
667
  m = m.half() if hasattr(m, "half") and isinstance(x, torch.Tensor) and x.dtype is torch.float16 else m
675
668
  tf, tb, t = 0, 0, [0, 0, 0] # dt forward, backward
676
669
  try:
677
- flops = thop.profile(m, inputs=[x], verbose=False)[0] / 1e9 * 2 if thop else 0 # GFLOPs
670
+ flops = thop.profile(m, inputs=[x], verbose=False)[0] / 1e9 * 2 # GFLOPs
678
671
  except Exception:
679
672
  flops = 0
680
673
 
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- from ultralytics.cfg import TASK2DATA, TASK2METRIC, get_save_dir
3
+ from ultralytics.cfg import TASK2DATA, TASK2METRIC, get_cfg, get_save_dir
4
4
  from ultralytics.utils import DEFAULT_CFG, DEFAULT_CFG_DICT, LOGGER, NUM_THREADS, checks
5
5
 
6
6
 
@@ -134,7 +134,9 @@ def run_ray_tune(
134
134
  tuner_callbacks = [WandbLoggerCallback(project="YOLOv8-tune")] if wandb else []
135
135
 
136
136
  # Create the Ray Tune hyperparameter search tuner
137
- tune_dir = get_save_dir(DEFAULT_CFG, name="tune").resolve() # must be absolute dir
137
+ tune_dir = get_save_dir(
138
+ get_cfg(DEFAULT_CFG, train_args), name=train_args.pop("name", "tune")
139
+ ).resolve() # must be absolute dir
138
140
  tune_dir.mkdir(parents=True, exist_ok=True)
139
141
  tuner = tune.Tuner(
140
142
  trainable_with_resources,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ultralytics
3
- Version: 8.3.62
3
+ Version: 8.3.64
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