ultralytics 8.2.64__tar.gz → 8.2.66__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.

Potentially problematic release.


This version of ultralytics might be problematic. Click here for more details.

Files changed (235) hide show
  1. {ultralytics-8.2.64/ultralytics.egg-info → ultralytics-8.2.66}/PKG-INFO +2 -1
  2. {ultralytics-8.2.64 → ultralytics-8.2.66}/pyproject.toml +1 -0
  3. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/__init__.py +1 -1
  4. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/data/dataset.py +6 -0
  5. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/data/loaders.py +1 -1
  6. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/engine/model.py +2 -1
  7. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/engine/trainer.py +2 -7
  8. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/hub/session.py +6 -4
  9. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/detect/val.py +1 -1
  10. ultralytics-8.2.66/ultralytics/nn/modules/activation.py +22 -0
  11. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/nn/tasks.py +1 -1
  12. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/checks.py +4 -4
  13. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/torch_utils.py +0 -7
  14. {ultralytics-8.2.64 → ultralytics-8.2.66/ultralytics.egg-info}/PKG-INFO +2 -1
  15. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics.egg-info/SOURCES.txt +1 -0
  16. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics.egg-info/requires.txt +3 -0
  17. {ultralytics-8.2.64 → ultralytics-8.2.66}/LICENSE +0 -0
  18. {ultralytics-8.2.64 → ultralytics-8.2.66}/README.md +0 -0
  19. {ultralytics-8.2.64 → ultralytics-8.2.66}/setup.cfg +0 -0
  20. {ultralytics-8.2.64 → ultralytics-8.2.66}/tests/__init__.py +0 -0
  21. {ultralytics-8.2.64 → ultralytics-8.2.66}/tests/conftest.py +0 -0
  22. {ultralytics-8.2.64 → ultralytics-8.2.66}/tests/test_cli.py +0 -0
  23. {ultralytics-8.2.64 → ultralytics-8.2.66}/tests/test_cuda.py +0 -0
  24. {ultralytics-8.2.64 → ultralytics-8.2.66}/tests/test_engine.py +0 -0
  25. {ultralytics-8.2.64 → ultralytics-8.2.66}/tests/test_explorer.py +0 -0
  26. {ultralytics-8.2.64 → ultralytics-8.2.66}/tests/test_exports.py +0 -0
  27. {ultralytics-8.2.64 → ultralytics-8.2.66}/tests/test_integrations.py +0 -0
  28. {ultralytics-8.2.64 → ultralytics-8.2.66}/tests/test_python.py +0 -0
  29. {ultralytics-8.2.64 → ultralytics-8.2.66}/tests/test_solutions.py +0 -0
  30. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/assets/bus.jpg +0 -0
  31. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/assets/zidane.jpg +0 -0
  32. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/__init__.py +0 -0
  33. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  34. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  35. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  36. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  37. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  38. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  39. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  40. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  41. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  42. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  43. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  44. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  45. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  46. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/coco.yaml +0 -0
  47. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  48. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  49. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  50. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  51. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  52. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  53. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  54. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  55. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  56. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  57. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/signature.yaml +0 -0
  58. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  59. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/datasets/xView.yaml +0 -0
  60. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/default.yaml +0 -0
  61. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  62. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  63. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  64. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  65. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  66. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  67. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  68. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  69. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  70. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  71. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  72. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  73. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  74. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  75. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  76. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  77. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  78. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  79. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  80. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  81. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  82. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  83. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  84. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  85. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  86. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  87. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  88. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  89. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  90. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  91. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  92. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  93. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  94. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  95. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  96. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  97. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  98. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  99. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  100. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  101. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  102. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  103. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/data/__init__.py +0 -0
  104. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/data/annotator.py +0 -0
  105. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/data/augment.py +0 -0
  106. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/data/base.py +0 -0
  107. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/data/build.py +0 -0
  108. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/data/converter.py +0 -0
  109. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/data/explorer/__init__.py +0 -0
  110. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/data/explorer/explorer.py +0 -0
  111. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/data/explorer/gui/__init__.py +0 -0
  112. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/data/explorer/gui/dash.py +0 -0
  113. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/data/explorer/utils.py +0 -0
  114. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/data/split_dota.py +0 -0
  115. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/data/utils.py +0 -0
  116. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/engine/__init__.py +0 -0
  117. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/engine/exporter.py +0 -0
  118. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/engine/predictor.py +0 -0
  119. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/engine/results.py +0 -0
  120. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/engine/tuner.py +0 -0
  121. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/engine/validator.py +0 -0
  122. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/hub/__init__.py +0 -0
  123. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/hub/auth.py +0 -0
  124. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/hub/utils.py +0 -0
  125. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/__init__.py +0 -0
  126. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/fastsam/__init__.py +0 -0
  127. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/fastsam/model.py +0 -0
  128. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/fastsam/predict.py +0 -0
  129. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/fastsam/prompt.py +0 -0
  130. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/fastsam/utils.py +0 -0
  131. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/fastsam/val.py +0 -0
  132. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/nas/__init__.py +0 -0
  133. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/nas/model.py +0 -0
  134. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/nas/predict.py +0 -0
  135. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/nas/val.py +0 -0
  136. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/rtdetr/__init__.py +0 -0
  137. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/rtdetr/model.py +0 -0
  138. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/rtdetr/predict.py +0 -0
  139. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/rtdetr/train.py +0 -0
  140. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/rtdetr/val.py +0 -0
  141. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/sam/__init__.py +0 -0
  142. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/sam/amg.py +0 -0
  143. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/sam/build.py +0 -0
  144. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/sam/model.py +0 -0
  145. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/sam/modules/__init__.py +0 -0
  146. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/sam/modules/decoders.py +0 -0
  147. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/sam/modules/encoders.py +0 -0
  148. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/sam/modules/sam.py +0 -0
  149. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  150. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/sam/modules/transformer.py +0 -0
  151. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/sam/predict.py +0 -0
  152. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/utils/__init__.py +0 -0
  153. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/utils/loss.py +0 -0
  154. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/utils/ops.py +0 -0
  155. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/__init__.py +0 -0
  156. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/classify/__init__.py +0 -0
  157. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/classify/predict.py +0 -0
  158. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/classify/train.py +0 -0
  159. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/classify/val.py +0 -0
  160. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/detect/__init__.py +0 -0
  161. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/detect/predict.py +0 -0
  162. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/detect/train.py +0 -0
  163. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/model.py +0 -0
  164. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/obb/__init__.py +0 -0
  165. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/obb/predict.py +0 -0
  166. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/obb/train.py +0 -0
  167. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/obb/val.py +0 -0
  168. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/pose/__init__.py +0 -0
  169. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/pose/predict.py +0 -0
  170. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/pose/train.py +0 -0
  171. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/pose/val.py +0 -0
  172. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/segment/__init__.py +0 -0
  173. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/segment/predict.py +0 -0
  174. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/segment/train.py +0 -0
  175. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/segment/val.py +0 -0
  176. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/world/__init__.py +0 -0
  177. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/world/train.py +0 -0
  178. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/models/yolo/world/train_world.py +0 -0
  179. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/nn/__init__.py +0 -0
  180. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/nn/autobackend.py +0 -0
  181. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/nn/modules/__init__.py +0 -0
  182. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/nn/modules/block.py +0 -0
  183. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/nn/modules/conv.py +0 -0
  184. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/nn/modules/head.py +0 -0
  185. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/nn/modules/transformer.py +0 -0
  186. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/nn/modules/utils.py +0 -0
  187. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/solutions/__init__.py +0 -0
  188. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/solutions/ai_gym.py +0 -0
  189. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/solutions/analytics.py +0 -0
  190. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/solutions/distance_calculation.py +0 -0
  191. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/solutions/heatmap.py +0 -0
  192. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/solutions/object_counter.py +0 -0
  193. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/solutions/parking_management.py +0 -0
  194. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/solutions/queue_management.py +0 -0
  195. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/solutions/speed_estimation.py +0 -0
  196. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/solutions/streamlit_inference.py +0 -0
  197. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/trackers/__init__.py +0 -0
  198. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/trackers/basetrack.py +0 -0
  199. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/trackers/bot_sort.py +0 -0
  200. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/trackers/byte_tracker.py +0 -0
  201. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/trackers/track.py +0 -0
  202. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/trackers/utils/__init__.py +0 -0
  203. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/trackers/utils/gmc.py +0 -0
  204. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  205. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/trackers/utils/matching.py +0 -0
  206. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/__init__.py +0 -0
  207. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/autobatch.py +0 -0
  208. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/benchmarks.py +0 -0
  209. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/callbacks/__init__.py +0 -0
  210. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/callbacks/base.py +0 -0
  211. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/callbacks/clearml.py +0 -0
  212. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/callbacks/comet.py +0 -0
  213. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/callbacks/dvc.py +0 -0
  214. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/callbacks/hub.py +0 -0
  215. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/callbacks/mlflow.py +0 -0
  216. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/callbacks/neptune.py +0 -0
  217. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/callbacks/raytune.py +0 -0
  218. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  219. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/callbacks/wb.py +0 -0
  220. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/dist.py +0 -0
  221. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/downloads.py +0 -0
  222. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/errors.py +0 -0
  223. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/files.py +0 -0
  224. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/instance.py +0 -0
  225. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/loss.py +0 -0
  226. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/metrics.py +0 -0
  227. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/ops.py +0 -0
  228. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/patches.py +0 -0
  229. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/plotting.py +0 -0
  230. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/tal.py +0 -0
  231. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/triton.py +0 -0
  232. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics/utils/tuner.py +0 -0
  233. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics.egg-info/dependency_links.txt +0 -0
  234. {ultralytics-8.2.64 → ultralytics-8.2.66}/ultralytics.egg-info/entry_points.txt +0 -0
  235. {ultralytics-8.2.64 → ultralytics-8.2.66}/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.2.64
3
+ Version: 8.2.66
4
4
  Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
6
6
  Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
@@ -62,6 +62,7 @@ Requires-Dist: coremltools>=7.0; (platform_system != "Windows" and python_versio
62
62
  Requires-Dist: openvino>=2024.0.0; extra == "export"
63
63
  Requires-Dist: tensorflow>=2.0.0; extra == "export"
64
64
  Requires-Dist: tensorflowjs>=3.9.0; extra == "export"
65
+ Requires-Dist: tensorstore>=0.1.63; (platform_machine == "aarch64" and python_version >= "3.9") and extra == "export"
65
66
  Requires-Dist: keras; extra == "export"
66
67
  Requires-Dist: flatbuffers<100,>=23.5.26; platform_machine == "aarch64" and extra == "export"
67
68
  Requires-Dist: numpy==1.23.5; platform_machine == "aarch64" and extra == "export"
@@ -101,6 +101,7 @@ export = [
101
101
  "openvino>=2024.0.0", # OpenVINO export
102
102
  "tensorflow>=2.0.0", # TF bug https://github.com/ultralytics/ultralytics/issues/5161
103
103
  "tensorflowjs>=3.9.0", # TF.js export, automatically installs tensorflow
104
+ "tensorstore>=0.1.63; platform_machine == 'aarch64' and python_version >= '3.9'", # for TF Raspberry Pi exports
104
105
  "keras", # not installed automatically by tensorflow>=2.16
105
106
  "flatbuffers>=23.5.26,<100; platform_machine == 'aarch64'", # update old 'flatbuffers' included inside tensorflow package
106
107
  "numpy==1.23.5; platform_machine == 'aarch64'", # fix error: `np.bool` was a deprecated alias for the builtin `bool` when using TensorRT models on NVIDIA Jetson
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.2.64"
3
+ __version__ = "8.2.66"
4
4
 
5
5
  import os
6
6
 
@@ -431,6 +431,12 @@ class ClassificationDataset:
431
431
  self.samples = self.samples[: round(len(self.samples) * args.fraction)]
432
432
  self.prefix = colorstr(f"{prefix}: ") if prefix else ""
433
433
  self.cache_ram = args.cache is True or str(args.cache).lower() == "ram" # cache images into RAM
434
+ if self.cache_ram:
435
+ LOGGER.warning(
436
+ "WARNING ⚠️ Classification `cache_ram` training has known memory leak in "
437
+ "https://github.com/ultralytics/ultralytics/issues/9824, setting `cache_ram=False`."
438
+ )
439
+ self.cache_ram = False
434
440
  self.cache_disk = str(args.cache).lower() == "disk" # cache images on hard drive as uncompressed *.npy files
435
441
  self.samples = self.verify_images() # filter out bad images
436
442
  self.samples = [list(x) + [Path(x[0]).with_suffix(".npy"), None] for x in self.samples] # file, index, npy, im
@@ -545,7 +545,7 @@ def get_best_youtube_url(url, method="pytube"):
545
545
  """
546
546
  if method == "pytube":
547
547
  # Switched from pytube to pytubefix to resolve https://github.com/pytube/pytube/issues/1954
548
- check_requirements("pytubefix==6.3.4") # bug in 6.4.2 https://github.com/JuanBindez/pytubefix/issues/123
548
+ check_requirements("pytubefix>=6.5.2")
549
549
  from pytubefix import YouTube
550
550
 
551
551
  streams = YouTube(url).streams.filter(file_extension="mp4", only_video=True)
@@ -17,6 +17,7 @@ from ultralytics.utils import (
17
17
  DEFAULT_CFG_DICT,
18
18
  LOGGER,
19
19
  RANK,
20
+ SETTINGS,
20
21
  callbacks,
21
22
  checks,
22
23
  emojis,
@@ -286,7 +287,7 @@ class Model(nn.Module):
286
287
  >>> model._load('path/to/weights.pth', task='detect')
287
288
  """
288
289
  if weights.lower().startswith(("https://", "http://", "rtsp://", "rtmp://", "tcp://")):
289
- weights = checks.check_file(weights) # automatically download and return local filename
290
+ weights = checks.check_file(weights, download_dir=SETTINGS["weights_dir"]) # download and return local file
290
291
  weights = checks.check_model_file_from_stem(weights) # add suffix, i.e. yolov8n -> yolov8n.pt
291
292
 
292
293
  if Path(weights).suffix == ".pt":
@@ -41,7 +41,6 @@ from ultralytics.utils.checks import check_amp, check_file, check_imgsz, check_m
41
41
  from ultralytics.utils.dist import ddp_cleanup, generate_ddp_command
42
42
  from ultralytics.utils.files import get_latest_run
43
43
  from ultralytics.utils.torch_utils import (
44
- TORCH_1_13,
45
44
  EarlyStopping,
46
45
  ModelEMA,
47
46
  autocast,
@@ -266,11 +265,7 @@ class BaseTrainer:
266
265
  if RANK > -1 and world_size > 1: # DDP
267
266
  dist.broadcast(self.amp, src=0) # broadcast the tensor from rank 0 to all other ranks (returns None)
268
267
  self.amp = bool(self.amp) # as boolean
269
- self.scaler = (
270
- torch.amp.GradScaler("cuda", enabled=self.amp)
271
- if TORCH_1_13
272
- else torch.cuda.amp.GradScaler(enabled=self.amp)
273
- )
268
+ self.scaler = torch.cuda.amp.GradScaler(enabled=self.amp)
274
269
  if world_size > 1:
275
270
  self.model = nn.parallel.DistributedDataParallel(self.model, device_ids=[RANK], find_unused_parameters=True)
276
271
 
@@ -512,7 +507,7 @@ class BaseTrainer:
512
507
  self.last.write_bytes(serialized_ckpt) # save last.pt
513
508
  if self.best_fitness == self.fitness:
514
509
  self.best.write_bytes(serialized_ckpt) # save best.pt
515
- if (self.save_period > 0) and (self.epoch > 0) and (self.epoch % self.save_period == 0):
510
+ if (self.save_period > 0) and (self.epoch % self.save_period == 0):
516
511
  (self.wdir / f"epoch{self.epoch}.pt").write_bytes(serialized_ckpt) # save epoch, i.e. 'epoch3.pt'
517
512
 
518
513
  def get_dataset(self):
@@ -48,6 +48,7 @@ class HUBTrainingSession:
48
48
  self.timers = {} # holds timers in ultralytics/utils/callbacks/hub.py
49
49
  self.model = None
50
50
  self.model_url = None
51
+ self.model_file = None
51
52
 
52
53
  # Parse input
53
54
  api_key, model_id, self.filename = self._parse_identifier(identifier)
@@ -91,10 +92,13 @@ class HUBTrainingSession:
91
92
  raise ValueError(emojis("❌ The specified HUB model does not exist")) # TODO: improve error handling
92
93
 
93
94
  self.model_url = f"{HUB_WEB_ROOT}/models/{self.model.id}"
95
+ if self.model.is_trained():
96
+ print(emojis(f"Loading trained HUB model {self.model_url} 🚀"))
97
+ self.model_file = self.model.get_weights_url("best")
98
+ return
94
99
 
100
+ # Set training args and start heartbeats for HUB to monitor agent
95
101
  self._set_train_args()
96
-
97
- # Start heartbeats for HUB to monitor agent
98
102
  self.model.start_heartbeat(self.rate_limits["heartbeat"])
99
103
  LOGGER.info(f"{PREFIX}View model at {self.model_url} 🚀")
100
104
 
@@ -195,8 +199,6 @@ class HUBTrainingSession:
195
199
  ValueError: If the model is already trained, if required dataset information is missing, or if there are
196
200
  issues with the provided training arguments.
197
201
  """
198
- if self.model.is_trained():
199
- raise ValueError(emojis(f"Model is already trained and uploaded to {self.model_url} 🚀"))
200
202
 
201
203
  if self.model.is_resumable():
202
204
  # Model has saved weights
@@ -97,7 +97,7 @@ class DetectionValidator(BaseValidator):
97
97
  self.args.iou,
98
98
  labels=self.lb,
99
99
  multi_label=True,
100
- agnostic=self.args.single_cls,
100
+ agnostic=self.args.single_cls or self.args.agnostic_nms,
101
101
  max_det=self.args.max_det,
102
102
  )
103
103
 
@@ -0,0 +1,22 @@
1
+ # Ultralytics YOLO 🚀, AGPL-3.0 license
2
+ """Activation modules."""
3
+
4
+ import torch
5
+ import torch.nn as nn
6
+
7
+
8
+ class AGLU(nn.Module):
9
+ """Unified activation function module from https://github.com/kostas1515/AGLU."""
10
+
11
+ def __init__(self, device=None, dtype=None) -> None:
12
+ """Initialize the Unified activation function."""
13
+ super().__init__()
14
+ self.act = nn.Softplus(beta=-1.0)
15
+ self.lambd = nn.Parameter(nn.init.uniform_(torch.empty(1, device=device, dtype=dtype))) # lambda parameter
16
+ self.kappa = nn.Parameter(nn.init.uniform_(torch.empty(1, device=device, dtype=dtype))) # kappa parameter
17
+
18
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
19
+ """Compute the forward pass of the Unified activation function."""
20
+ lam = torch.clamp(self.lambd, min=0.0001)
21
+ y = torch.exp((1 / lam) * self.act((self.kappa * x) - torch.log(lam)))
22
+ return y # for AGLU simply return y * input
@@ -66,13 +66,13 @@ from ultralytics.utils.loss import (
66
66
  v8PoseLoss,
67
67
  v8SegmentationLoss,
68
68
  )
69
+ from ultralytics.utils.ops import make_divisible
69
70
  from ultralytics.utils.plotting import feature_visualization
70
71
  from ultralytics.utils.torch_utils import (
71
72
  fuse_conv_and_bn,
72
73
  fuse_deconv_and_bn,
73
74
  initialize_weights,
74
75
  intersect_dicts,
75
- make_divisible,
76
76
  model_info,
77
77
  scale_img,
78
78
  time_sync,
@@ -484,7 +484,7 @@ def check_model_file_from_stem(model="yolov8n"):
484
484
  return model
485
485
 
486
486
 
487
- def check_file(file, suffix="", download=True, hard=True):
487
+ def check_file(file, suffix="", download=True, download_dir=".", hard=True):
488
488
  """Search/download file (if necessary) and return path."""
489
489
  check_suffix(file, suffix) # optional
490
490
  file = str(file).strip() # convert to string and strip spaces
@@ -497,12 +497,12 @@ def check_file(file, suffix="", download=True, hard=True):
497
497
  return file
498
498
  elif download and file.lower().startswith(("https://", "http://", "rtsp://", "rtmp://", "tcp://")): # download
499
499
  url = file # warning: Pathlib turns :// -> :/
500
- file = url2file(file) # '%2F' to '/', split https://url.com/file.txt?auth
501
- if Path(file).exists():
500
+ file = Path(download_dir) / url2file(file) # '%2F' to '/', split https://url.com/file.txt?auth
501
+ if file.exists():
502
502
  LOGGER.info(f"Found {clean_url(url)} locally at {file}") # file already exists
503
503
  else:
504
504
  downloads.safe_download(url=url, file=file, unzip=False)
505
- return file
505
+ return str(file)
506
506
  else: # search
507
507
  files = glob.glob(str(ROOT / "**" / file), recursive=True) or glob.glob(str(ROOT.parent / file)) # find file
508
508
  if not files and hard:
@@ -424,13 +424,6 @@ def scale_img(img, ratio=1.0, same_shape=False, gs=32):
424
424
  return F.pad(img, [0, w - s[1], 0, h - s[0]], value=0.447) # value = imagenet mean
425
425
 
426
426
 
427
- def make_divisible(x, divisor):
428
- """Returns nearest x divisible by divisor."""
429
- if isinstance(divisor, torch.Tensor):
430
- divisor = int(divisor.max()) # to int
431
- return math.ceil(x / divisor) * divisor
432
-
433
-
434
427
  def copy_attr(a, b, include=(), exclude=()):
435
428
  """Copies attributes from object 'b' to object 'a', with options to include/exclude certain attributes."""
436
429
  for k, v in b.__dict__.items():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.2.64
3
+ Version: 8.2.66
4
4
  Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
6
6
  Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
@@ -62,6 +62,7 @@ Requires-Dist: coremltools>=7.0; (platform_system != "Windows" and python_versio
62
62
  Requires-Dist: openvino>=2024.0.0; extra == "export"
63
63
  Requires-Dist: tensorflow>=2.0.0; extra == "export"
64
64
  Requires-Dist: tensorflowjs>=3.9.0; extra == "export"
65
+ Requires-Dist: tensorstore>=0.1.63; (platform_machine == "aarch64" and python_version >= "3.9") and extra == "export"
65
66
  Requires-Dist: keras; extra == "export"
66
67
  Requires-Dist: flatbuffers<100,>=23.5.26; platform_machine == "aarch64" and extra == "export"
67
68
  Requires-Dist: numpy==1.23.5; platform_machine == "aarch64" and extra == "export"
@@ -185,6 +185,7 @@ ultralytics/nn/__init__.py
185
185
  ultralytics/nn/autobackend.py
186
186
  ultralytics/nn/tasks.py
187
187
  ultralytics/nn/modules/__init__.py
188
+ ultralytics/nn/modules/activation.py
188
189
  ultralytics/nn/modules/block.py
189
190
  ultralytics/nn/modules/conv.py
190
191
  ultralytics/nn/modules/head.py
@@ -43,6 +43,9 @@ flatbuffers<100,>=23.5.26
43
43
  numpy==1.23.5
44
44
  h5py!=3.11.0
45
45
 
46
+ [export:platform_machine == "aarch64" and python_version >= "3.9"]
47
+ tensorstore>=0.1.63
48
+
46
49
  [export:platform_system != "Windows" and python_version <= "3.11"]
47
50
  coremltools>=7.0
48
51
 
File without changes
File without changes
File without changes