ultralytics 8.2.23__tar.gz → 8.2.25__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 (224) hide show
  1. {ultralytics-8.2.23 → ultralytics-8.2.25}/PKG-INFO +7 -6
  2. {ultralytics-8.2.23 → ultralytics-8.2.25}/README.md +3 -3
  3. {ultralytics-8.2.23 → ultralytics-8.2.25}/pyproject.toml +3 -3
  4. {ultralytics-8.2.23 → ultralytics-8.2.25}/tests/test_exports.py +27 -3
  5. {ultralytics-8.2.23 → ultralytics-8.2.25}/tests/test_python.py +6 -1
  6. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/__init__.py +7 -4
  7. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/data/explorer/explorer.py +2 -5
  8. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/data/explorer/gui/dash.py +4 -5
  9. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/engine/exporter.py +5 -5
  10. ultralytics-8.2.25/ultralytics/models/__init__.py +9 -0
  11. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/__init__.py +2 -21
  12. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/benchmarks.py +6 -6
  13. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/checks.py +1 -3
  14. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics.egg-info/PKG-INFO +7 -6
  15. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics.egg-info/requires.txt +3 -4
  16. ultralytics-8.2.23/ultralytics/models/__init__.py +0 -7
  17. {ultralytics-8.2.23 → ultralytics-8.2.25}/LICENSE +0 -0
  18. {ultralytics-8.2.23 → ultralytics-8.2.25}/setup.cfg +0 -0
  19. {ultralytics-8.2.23 → ultralytics-8.2.25}/tests/__init__.py +0 -0
  20. {ultralytics-8.2.23 → ultralytics-8.2.25}/tests/conftest.py +0 -0
  21. {ultralytics-8.2.23 → ultralytics-8.2.25}/tests/test_cli.py +0 -0
  22. {ultralytics-8.2.23 → ultralytics-8.2.25}/tests/test_cuda.py +0 -0
  23. {ultralytics-8.2.23 → ultralytics-8.2.25}/tests/test_engine.py +0 -0
  24. {ultralytics-8.2.23 → ultralytics-8.2.25}/tests/test_explorer.py +0 -0
  25. {ultralytics-8.2.23 → ultralytics-8.2.25}/tests/test_integrations.py +0 -0
  26. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/assets/bus.jpg +0 -0
  27. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/assets/zidane.jpg +0 -0
  28. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/__init__.py +0 -0
  29. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  30. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  31. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  32. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  33. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  34. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  35. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  36. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  37. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  38. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  39. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  40. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  41. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  42. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/coco.yaml +0 -0
  43. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  44. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  45. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  46. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  47. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  48. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  49. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  50. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  51. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  52. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  53. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/signature.yaml +0 -0
  54. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  55. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/datasets/xView.yaml +0 -0
  56. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/default.yaml +0 -0
  57. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  58. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  59. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  60. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  61. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  62. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  63. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  64. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  65. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  66. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  67. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  68. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  69. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  70. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  71. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  72. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  73. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  74. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  75. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  76. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  77. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  78. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  79. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  80. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  81. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  82. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  83. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  84. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  85. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  86. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  87. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  88. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  89. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  90. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/data/__init__.py +0 -0
  91. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/data/annotator.py +0 -0
  92. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/data/augment.py +0 -0
  93. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/data/base.py +0 -0
  94. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/data/build.py +0 -0
  95. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/data/converter.py +0 -0
  96. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/data/dataset.py +0 -0
  97. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/data/explorer/__init__.py +0 -0
  98. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/data/explorer/gui/__init__.py +0 -0
  99. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/data/explorer/utils.py +0 -0
  100. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/data/loaders.py +0 -0
  101. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/data/split_dota.py +0 -0
  102. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/data/utils.py +0 -0
  103. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/engine/__init__.py +0 -0
  104. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/engine/model.py +0 -0
  105. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/engine/predictor.py +0 -0
  106. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/engine/results.py +0 -0
  107. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/engine/trainer.py +0 -0
  108. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/engine/tuner.py +0 -0
  109. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/engine/validator.py +0 -0
  110. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/hub/__init__.py +0 -0
  111. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/hub/auth.py +0 -0
  112. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/hub/session.py +0 -0
  113. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/hub/utils.py +0 -0
  114. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/fastsam/__init__.py +0 -0
  115. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/fastsam/model.py +0 -0
  116. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/fastsam/predict.py +0 -0
  117. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/fastsam/prompt.py +0 -0
  118. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/fastsam/utils.py +0 -0
  119. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/fastsam/val.py +0 -0
  120. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/nas/__init__.py +0 -0
  121. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/nas/model.py +0 -0
  122. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/nas/predict.py +0 -0
  123. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/nas/val.py +0 -0
  124. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/rtdetr/__init__.py +0 -0
  125. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/rtdetr/model.py +0 -0
  126. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/rtdetr/predict.py +0 -0
  127. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/rtdetr/train.py +0 -0
  128. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/rtdetr/val.py +0 -0
  129. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/sam/__init__.py +0 -0
  130. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/sam/amg.py +0 -0
  131. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/sam/build.py +0 -0
  132. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/sam/model.py +0 -0
  133. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/sam/modules/__init__.py +0 -0
  134. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/sam/modules/decoders.py +0 -0
  135. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/sam/modules/encoders.py +0 -0
  136. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/sam/modules/sam.py +0 -0
  137. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  138. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/sam/modules/transformer.py +0 -0
  139. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/sam/predict.py +0 -0
  140. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/utils/__init__.py +0 -0
  141. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/utils/loss.py +0 -0
  142. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/utils/ops.py +0 -0
  143. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/__init__.py +0 -0
  144. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/classify/__init__.py +0 -0
  145. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/classify/predict.py +0 -0
  146. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/classify/train.py +0 -0
  147. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/classify/val.py +0 -0
  148. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/detect/__init__.py +0 -0
  149. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/detect/predict.py +0 -0
  150. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/detect/train.py +0 -0
  151. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/detect/val.py +0 -0
  152. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/model.py +0 -0
  153. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/obb/__init__.py +0 -0
  154. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/obb/predict.py +0 -0
  155. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/obb/train.py +0 -0
  156. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/obb/val.py +0 -0
  157. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/pose/__init__.py +0 -0
  158. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/pose/predict.py +0 -0
  159. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/pose/train.py +0 -0
  160. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/pose/val.py +0 -0
  161. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/segment/__init__.py +0 -0
  162. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/segment/predict.py +0 -0
  163. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/segment/train.py +0 -0
  164. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/segment/val.py +0 -0
  165. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/world/__init__.py +0 -0
  166. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/world/train.py +0 -0
  167. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/models/yolo/world/train_world.py +0 -0
  168. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/nn/__init__.py +0 -0
  169. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/nn/autobackend.py +0 -0
  170. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/nn/modules/__init__.py +0 -0
  171. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/nn/modules/block.py +0 -0
  172. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/nn/modules/conv.py +0 -0
  173. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/nn/modules/head.py +0 -0
  174. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/nn/modules/transformer.py +0 -0
  175. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/nn/modules/utils.py +0 -0
  176. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/nn/tasks.py +0 -0
  177. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/solutions/__init__.py +0 -0
  178. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/solutions/ai_gym.py +0 -0
  179. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/solutions/analytics.py +0 -0
  180. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/solutions/distance_calculation.py +0 -0
  181. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/solutions/heatmap.py +0 -0
  182. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/solutions/object_counter.py +0 -0
  183. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/solutions/parking_management.py +0 -0
  184. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/solutions/queue_management.py +0 -0
  185. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/solutions/speed_estimation.py +0 -0
  186. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/trackers/__init__.py +0 -0
  187. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/trackers/basetrack.py +0 -0
  188. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/trackers/bot_sort.py +0 -0
  189. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/trackers/byte_tracker.py +0 -0
  190. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/trackers/track.py +0 -0
  191. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/trackers/utils/__init__.py +0 -0
  192. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/trackers/utils/gmc.py +0 -0
  193. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  194. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/trackers/utils/matching.py +0 -0
  195. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/autobatch.py +0 -0
  196. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/callbacks/__init__.py +0 -0
  197. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/callbacks/base.py +0 -0
  198. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/callbacks/clearml.py +0 -0
  199. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/callbacks/comet.py +0 -0
  200. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/callbacks/dvc.py +0 -0
  201. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/callbacks/hub.py +0 -0
  202. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/callbacks/mlflow.py +0 -0
  203. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/callbacks/neptune.py +0 -0
  204. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/callbacks/raytune.py +0 -0
  205. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  206. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/callbacks/wb.py +0 -0
  207. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/dist.py +0 -0
  208. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/downloads.py +0 -0
  209. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/errors.py +0 -0
  210. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/files.py +0 -0
  211. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/instance.py +0 -0
  212. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/loss.py +0 -0
  213. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/metrics.py +0 -0
  214. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/ops.py +0 -0
  215. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/patches.py +0 -0
  216. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/plotting.py +0 -0
  217. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/tal.py +0 -0
  218. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/torch_utils.py +0 -0
  219. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/triton.py +0 -0
  220. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics/utils/tuner.py +0 -0
  221. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics.egg-info/SOURCES.txt +0 -0
  222. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics.egg-info/dependency_links.txt +0 -0
  223. {ultralytics-8.2.23 → ultralytics-8.2.25}/ultralytics.egg-info/entry_points.txt +0 -0
  224. {ultralytics-8.2.23 → ultralytics-8.2.25}/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.23
3
+ Version: 8.2.25
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
@@ -61,8 +61,9 @@ Provides-Extra: export
61
61
  Requires-Dist: onnx>=1.12.0; extra == "export"
62
62
  Requires-Dist: coremltools>=7.0; (platform_system != "Windows" and python_version <= "3.11") and extra == "export"
63
63
  Requires-Dist: openvino>=2024.0.0; extra == "export"
64
- Requires-Dist: tensorflow<=2.13.1; python_version <= "3.11" and extra == "export"
65
- Requires-Dist: tensorflowjs>=3.9.0; python_version <= "3.11" and extra == "export"
64
+ Requires-Dist: tensorflow>=2.0.0; extra == "export"
65
+ Requires-Dist: tensorflowjs>=3.9.0; extra == "export"
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"
68
69
  Requires-Dist: h5py!=3.11.0; platform_machine == "aarch64" and extra == "export"
@@ -116,7 +117,7 @@ To request an Enterprise License please complete the form at [Ultralytics Licens
116
117
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
117
118
  <a href="https://twitter.com/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-twitter.png" width="2%" alt="Ultralytics Twitter"></a>
118
119
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
119
- <a href="https://youtube.com/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-youtube.png" width="2%" alt="Ultralytics YouTube"></a>
120
+ <a href="https://youtube.com/ultralytics?sub_confirmation=1"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-youtube.png" width="2%" alt="Ultralytics YouTube"></a>
120
121
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
121
122
  <a href="https://www.tiktok.com/@ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-tiktok.png" width="2%" alt="Ultralytics TikTok"></a>
122
123
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
@@ -184,7 +185,7 @@ See YOLOv8 [Python Docs](https://docs.ultralytics.com/usage/python) for more exa
184
185
 
185
186
  ### Notebooks
186
187
 
187
- Ultralytics provides interactive notebooks for YOLOv8, covering training, validation, tracking, and more. Each notebook is paired with a [YouTube](https://youtube.com/ultralytics) tutorial, making it easy to learn and implement advanced YOLOv8 features.
188
+ Ultralytics provides interactive notebooks for YOLOv8, covering training, validation, tracking, and more. Each notebook is paired with a [YouTube](https://youtube.com/ultralytics?sub_confirmation=1) tutorial, making it easy to learn and implement advanced YOLOv8 features.
188
189
 
189
190
  | Docs | Notebook | YouTube |
190
191
  | --------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
@@ -369,7 +370,7 @@ For Ultralytics bug reports and feature requests please visit [GitHub Issues](ht
369
370
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
370
371
  <a href="https://twitter.com/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-twitter.png" width="3%" alt="Ultralytics Twitter"></a>
371
372
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
372
- <a href="https://youtube.com/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-youtube.png" width="3%" alt="Ultralytics YouTube"></a>
373
+ <a href="https://youtube.com/ultralytics?sub_confirmation=1"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-youtube.png" width="3%" alt="Ultralytics YouTube"></a>
373
374
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
374
375
  <a href="https://www.tiktok.com/@ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-tiktok.png" width="3%" alt="Ultralytics TikTok"></a>
375
376
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
@@ -34,7 +34,7 @@ To request an Enterprise License please complete the form at [Ultralytics Licens
34
34
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
35
35
  <a href="https://twitter.com/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-twitter.png" width="2%" alt="Ultralytics Twitter"></a>
36
36
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
37
- <a href="https://youtube.com/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-youtube.png" width="2%" alt="Ultralytics YouTube"></a>
37
+ <a href="https://youtube.com/ultralytics?sub_confirmation=1"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-youtube.png" width="2%" alt="Ultralytics YouTube"></a>
38
38
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
39
39
  <a href="https://www.tiktok.com/@ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-tiktok.png" width="2%" alt="Ultralytics TikTok"></a>
40
40
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
@@ -102,7 +102,7 @@ See YOLOv8 [Python Docs](https://docs.ultralytics.com/usage/python) for more exa
102
102
 
103
103
  ### Notebooks
104
104
 
105
- Ultralytics provides interactive notebooks for YOLOv8, covering training, validation, tracking, and more. Each notebook is paired with a [YouTube](https://youtube.com/ultralytics) tutorial, making it easy to learn and implement advanced YOLOv8 features.
105
+ Ultralytics provides interactive notebooks for YOLOv8, covering training, validation, tracking, and more. Each notebook is paired with a [YouTube](https://youtube.com/ultralytics?sub_confirmation=1) tutorial, making it easy to learn and implement advanced YOLOv8 features.
106
106
 
107
107
  | Docs | Notebook | YouTube |
108
108
  | --------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
@@ -287,7 +287,7 @@ For Ultralytics bug reports and feature requests please visit [GitHub Issues](ht
287
287
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
288
288
  <a href="https://twitter.com/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-twitter.png" width="3%" alt="Ultralytics Twitter"></a>
289
289
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
290
- <a href="https://youtube.com/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-youtube.png" width="3%" alt="Ultralytics YouTube"></a>
290
+ <a href="https://youtube.com/ultralytics?sub_confirmation=1"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-youtube.png" width="3%" alt="Ultralytics YouTube"></a>
291
291
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
292
292
  <a href="https://www.tiktok.com/@ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-tiktok.png" width="3%" alt="Ultralytics TikTok"></a>
293
293
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
@@ -100,8 +100,9 @@ export = [
100
100
  "onnx>=1.12.0", # ONNX export
101
101
  "coremltools>=7.0; platform_system != 'Windows' and python_version <= '3.11'", # CoreML supported on macOS and Linux
102
102
  "openvino>=2024.0.0", # OpenVINO export
103
- "tensorflow<=2.13.1; python_version <= '3.11'", # TF bug https://github.com/ultralytics/ultralytics/issues/5161
104
- "tensorflowjs>=3.9.0; python_version <= '3.11'", # TF.js export, automatically installs tensorflow
103
+ "tensorflow>=2.0.0", # TF bug https://github.com/ultralytics/ultralytics/issues/5161
104
+ "tensorflowjs>=3.9.0", # TF.js export, automatically installs tensorflow
105
+ "keras", # not installed auotomatically 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
107
108
  "h5py!=3.11.0; platform_machine == 'aarch64'", # fix h5py build issues due to missing aarch64 wheels in 3.11 release
@@ -111,7 +112,6 @@ explorer = [
111
112
  "duckdb<=0.9.2", # SQL queries, duckdb==0.10.0 bug https://github.com/ultralytics/ultralytics/pull/8181
112
113
  "streamlit", # visualizing with GUI
113
114
  ]
114
- # tensorflow>=2.4.1,<=2.13.1 # TF exports (-cpu, -aarch64, -macos)
115
115
  # tflite-support # for TFLite model metadata
116
116
  # nvidia-pyindex # TensorRT export
117
117
  # nvidia-tensorrt # TensorRT export
@@ -15,7 +15,6 @@ from ultralytics.utils import (
15
15
  LINUX,
16
16
  MACOS,
17
17
  WINDOWS,
18
- Retry,
19
18
  checks,
20
19
  )
21
20
  from ultralytics.utils.torch_utils import TORCH_1_9, TORCH_1_13
@@ -69,8 +68,7 @@ def test_export_openvino_matrix(task, dynamic, int8, half, batch):
69
68
  file = Path(file)
70
69
  file = file.rename(file.with_stem(f"{file.stem}-{uuid.uuid4()}"))
71
70
  YOLO(file)([SOURCE] * batch, imgsz=64 if dynamic else 32) # exported model inference
72
- with Retry(times=3, delay=1): # retry in case of potential lingering multi-threaded file usage errors
73
- shutil.rmtree(file)
71
+ shutil.rmtree(file, ignore_errors=True) # retry in case of potential lingering multi-threaded file usage errors
74
72
 
75
73
 
76
74
  @pytest.mark.slow
@@ -131,6 +129,31 @@ def test_export_coreml_matrix(task, dynamic, int8, half, batch):
131
129
  shutil.rmtree(file) # cleanup
132
130
 
133
131
 
132
+ @pytest.mark.slow
133
+ @pytest.mark.skipif(not checks.IS_PYTHON_MINIMUM_3_10, reason="TFLite export requires Python>=3.10")
134
+ @pytest.mark.skipif(not LINUX, reason="Test disabled as TF suffers from install conflicts on Windows and macOS")
135
+ @pytest.mark.parametrize(
136
+ "task, dynamic, int8, half, batch",
137
+ [ # generate all combinations but exclude those where both int8 and half are True
138
+ (task, dynamic, int8, half, batch)
139
+ for task, dynamic, int8, half, batch in product(TASKS, [False], [True, False], [True, False], [1])
140
+ if not (int8 and half) # exclude cases where both int8 and half are True
141
+ ],
142
+ )
143
+ def test_export_tflite_matrix(task, dynamic, int8, half, batch):
144
+ """Test YOLO exports to TFLite format."""
145
+ file = YOLO(TASK2MODEL[task]).export(
146
+ format="tflite",
147
+ imgsz=32,
148
+ dynamic=dynamic,
149
+ int8=int8,
150
+ half=half,
151
+ batch=batch,
152
+ )
153
+ YOLO(file)([SOURCE] * batch, imgsz=32) # exported model inference at batch=3
154
+ Path(file).unlink() # cleanup
155
+
156
+
134
157
  @pytest.mark.skipif(not TORCH_1_9, reason="CoreML>=7.2 not supported with PyTorch<=1.8")
135
158
  @pytest.mark.skipif(WINDOWS, reason="CoreML not supported on Windows") # RuntimeError: BlobWriter not loaded
136
159
  @pytest.mark.skipif(IS_RASPBERRYPI, reason="CoreML not supported on Raspberry Pi")
@@ -144,6 +167,7 @@ def test_export_coreml():
144
167
  YOLO(MODEL).export(format="coreml", nms=True, imgsz=32)
145
168
 
146
169
 
170
+ @pytest.mark.skipif(not checks.IS_PYTHON_MINIMUM_3_10, reason="TFLite export requires Python>=3.10")
147
171
  @pytest.mark.skipif(not LINUX, reason="Test disabled as TF suffers from install conflicts on Windows and macOS")
148
172
  def test_export_tflite():
149
173
  """
@@ -1,6 +1,7 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
3
  import contextlib
4
+ import urllib
4
5
  from copy import copy
5
6
  from pathlib import Path
6
7
 
@@ -19,6 +20,7 @@ from ultralytics.utils import (
19
20
  ASSETS,
20
21
  DEFAULT_CFG,
21
22
  DEFAULT_CFG_PATH,
23
+ LOGGER,
22
24
  ONLINE,
23
25
  ROOT,
24
26
  WEIGHTS_DIR,
@@ -136,7 +138,10 @@ def test_youtube():
136
138
  Note: ConnectionError may occur during this test due to network instability or YouTube server availability.
137
139
  """
138
140
  model = YOLO(MODEL)
139
- model.predict("https://youtu.be/G17sBkb38XQ", imgsz=96, save=True)
141
+ try:
142
+ model.predict("https://youtu.be/G17sBkb38XQ", imgsz=96, save=True)
143
+ except urllib.error.HTTPError as e: # handle 'urllib.error.HTTPError: HTTP Error 429: Too Many Requests'
144
+ LOGGER.warning(f"WARNING: YouTube Test Error: {e}")
140
145
 
141
146
 
142
147
  @pytest.mark.skipif(not ONLINE, reason="environment is offline")
@@ -1,11 +1,14 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.2.23"
3
+ __version__ = "8.2.25"
4
+
5
+ import os
6
+
7
+ # Set ENV Variables (place before imports)
8
+ os.environ["OMP_NUM_THREADS"] = "1" # reduce CPU utilization during training
4
9
 
5
10
  from ultralytics.data.explorer.explorer import Explorer
6
- from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
7
- from ultralytics.models.fastsam import FastSAM
8
- from ultralytics.models.nas import NAS
11
+ from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld
9
12
  from ultralytics.utils import ASSETS, SETTINGS
10
13
  from ultralytics.utils.checks import check_yolo as checks
11
14
  from ultralytics.utils.downloads import download
@@ -64,7 +64,7 @@ class Explorer:
64
64
  import lancedb
65
65
 
66
66
  self.connection = lancedb.connect(uri)
67
- self.table_name = Path(data).name.lower() + "_" + model.lower()
67
+ self.table_name = f"{Path(data).name.lower()}_{model.lower()}"
68
68
  self.sim_idx_base_name = (
69
69
  f"{self.table_name}_sim_idx".lower()
70
70
  ) # Use this name and append thres and top_k to reuse the table
@@ -268,10 +268,7 @@ class Explorer:
268
268
  similar = exp.get_similar(img='https://ultralytics.com/images/zidane.jpg')
269
269
  ```
270
270
  """
271
- assert return_type in {
272
- "pandas",
273
- "arrow",
274
- }, f"Return type should be either `pandas` or `arrow`, but got {return_type}"
271
+ assert return_type in {"pandas", "arrow"}, f"Return type should be `pandas` or `arrow`, but got {return_type}"
275
272
  img = self._check_imgs_or_idxs(img, idx)
276
273
  similar = self.query(img, limit=limit)
277
274
 
@@ -197,12 +197,11 @@ def layout():
197
197
  imgs = []
198
198
  if st.session_state.get("error"):
199
199
  st.error(st.session_state["error"])
200
+ elif st.session_state.get("imgs"):
201
+ imgs = st.session_state.get("imgs")
200
202
  else:
201
- if st.session_state.get("imgs"):
202
- imgs = st.session_state.get("imgs")
203
- else:
204
- imgs = exp.table.to_lance().to_table(columns=["im_file"]).to_pydict()["im_file"]
205
- st.session_state["res"] = exp.table.to_arrow()
203
+ imgs = exp.table.to_lance().to_table(columns=["im_file"]).to_pydict()["im_file"]
204
+ st.session_state["res"] = exp.table.to_arrow()
206
205
  total_imgs, selected_imgs = len(imgs), []
207
206
  with col1:
208
207
  subcol1, subcol2, subcol3, subcol4, subcol5 = st.columns(5)
@@ -83,7 +83,6 @@ from ultralytics.utils import (
83
83
  WINDOWS,
84
84
  __version__,
85
85
  callbacks,
86
- checks,
87
86
  colorstr,
88
87
  get_default_args,
89
88
  yaml_save,
@@ -813,15 +812,16 @@ class Exporter:
813
812
  import tensorflow as tf # noqa
814
813
  except ImportError:
815
814
  suffix = "-macos" if MACOS else "-aarch64" if ARM64 else "" if cuda else "-cpu"
816
- version = "" if ARM64 else "<=2.13.1"
817
- check_requirements((f"tensorflow{suffix}{version}", "keras"))
815
+ version = ">=2.0.0"
816
+ check_requirements(f"tensorflow{suffix}{version}")
818
817
  import tensorflow as tf # noqa
819
818
  if ARM64:
820
819
  check_requirements("cmake") # 'cmake' is needed to build onnxsim on aarch64
821
820
  check_requirements(
822
821
  (
822
+ "keras",
823
823
  "onnx>=1.12.0",
824
- "onnx2tf>=1.15.4,<=1.17.5",
824
+ "onnx2tf>1.17.5,<=1.22.3",
825
825
  "sng4onnx>=1.0.1",
826
826
  "onnxsim>=0.4.33",
827
827
  "onnx_graphsurgeon>=0.3.26",
@@ -835,7 +835,7 @@ class Exporter:
835
835
  LOGGER.info(f"\n{prefix} starting export with tensorflow {tf.__version__}...")
836
836
  check_version(
837
837
  tf.__version__,
838
- "<=2.13.1",
838
+ ">=2.0.0",
839
839
  name="tensorflow",
840
840
  verbose=True,
841
841
  msg="https://github.com/ultralytics/ultralytics/issues/5161",
@@ -0,0 +1,9 @@
1
+ # Ultralytics YOLO 🚀, AGPL-3.0 license
2
+
3
+ from .fastsam import FastSAM
4
+ from .nas import NAS
5
+ from .rtdetr import RTDETR
6
+ from .sam import SAM
7
+ from .yolo import YOLO, YOLOWorld
8
+
9
+ __all__ = "YOLO", "RTDETR", "SAM", "FastSAM", "NAS", "YOLOWorld" # allow simpler import
@@ -806,8 +806,8 @@ class Retry(contextlib.ContextDecorator):
806
806
  """
807
807
  Retry class for function execution with exponential backoff.
808
808
 
809
- Can be used as a decorator or a context manager to retry a function or block of code on exceptions, up to a
810
- specified number of times with an exponentially increasing delay between retries.
809
+ Can be used as a decorator to retry a function on exceptions, up to a specified number of times with an
810
+ exponentially increasing delay between retries.
811
811
 
812
812
  Examples:
813
813
  Example usage as a decorator:
@@ -815,11 +815,6 @@ class Retry(contextlib.ContextDecorator):
815
815
  >>> def test_func():
816
816
  >>> # Replace with function logic that may raise exceptions
817
817
  >>> return True
818
-
819
- Example usage as a context manager:
820
- >>> with Retry(times=3, delay=2):
821
- >>> # Replace with code block that may raise exceptions
822
- >>> pass
823
818
  """
824
819
 
825
820
  def __init__(self, times=3, delay=2):
@@ -846,20 +841,6 @@ class Retry(contextlib.ContextDecorator):
846
841
 
847
842
  return wrapped_func
848
843
 
849
- def __enter__(self):
850
- """Enter the runtime context related to this object."""
851
- self._attempts = 0
852
-
853
- def __exit__(self, exc_type, exc_value, traceback):
854
- """Exit the runtime context related to this object with exponential backoff."""
855
- if exc_type is not None:
856
- self._attempts += 1
857
- if self._attempts < self.times:
858
- print(f"Retry {self._attempts}/{self.times} failed: {exc_value}")
859
- time.sleep(self.delay * (2**self._attempts)) # exponential backoff delay
860
- return True # Suppresses the exception and retries
861
- return False # Re-raises the exception if retries are exhausted
862
-
863
844
 
864
845
  def threaded(func):
865
846
  """
@@ -88,14 +88,14 @@ def benchmark(
88
88
  emoji, filename = "❌", None # export defaults
89
89
  try:
90
90
  # Checks
91
- if i == 5: # CoreML
92
- assert not (IS_RASPBERRYPI or IS_JETSON), "CoreML export not supported on Raspberry Pi or NVIDIA Jetson"
93
- if i == 9: # Edge TPU
94
- assert LINUX and not ARM64, "Edge TPU export only supported on non-aarch64 Linux"
95
- elif i == 7: # TF GraphDef
91
+ if i == 7: # TF GraphDef
96
92
  assert model.task != "obb", "TensorFlow GraphDef not supported for OBB task"
93
+ elif i == 9: # Edge TPU
94
+ assert LINUX and not ARM64, "Edge TPU export only supported on non-aarch64 Linux"
97
95
  elif i in {5, 10}: # CoreML and TF.js
98
- assert MACOS or LINUX, "export only supported on macOS and Linux"
96
+ assert MACOS or LINUX, "CoreML and TF.js export only supported on macOS and Linux"
97
+ assert not IS_RASPBERRYPI, "CoreML and TF.js export not supported on Raspberry Pi"
98
+ assert not IS_JETSON, "CoreML and TF.js export not supported on NVIDIA Jetson"
99
99
  if i in {3, 5}: # CoreML and OpenVINO
100
100
  assert not IS_PYTHON_3_12, "CoreML and OpenVINO not supported on Python 3.12"
101
101
  if i in {6, 7, 8, 9, 10}: # All TF formats
@@ -33,7 +33,6 @@ from ultralytics.utils import (
33
33
  ROOT,
34
34
  TORCHVISION_VERSION,
35
35
  USER_CONFIG_DIR,
36
- Retry,
37
36
  SimpleNamespace,
38
37
  ThreadingLocked,
39
38
  TryExcept,
@@ -390,8 +389,7 @@ def check_requirements(requirements=ROOT.parent / "requirements.txt", exclude=()
390
389
  try:
391
390
  t = time.time()
392
391
  assert ONLINE, "AutoUpdate skipped (offline)"
393
- with Retry(times=2, delay=1): # run up to 2 times with 1-second retry delay
394
- LOGGER.info(subprocess.check_output(f"pip install --no-cache-dir {s} {cmds}", shell=True).decode())
392
+ LOGGER.info(subprocess.check_output(f"pip install --no-cache-dir {s} {cmds}", shell=True).decode())
395
393
  dt = time.time() - t
396
394
  LOGGER.info(
397
395
  f"{prefix} AutoUpdate success ✅ {dt:.1f}s, installed {n} package{'s' * (n > 1)}: {pkgs}\n"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.2.23
3
+ Version: 8.2.25
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
@@ -61,8 +61,9 @@ Provides-Extra: export
61
61
  Requires-Dist: onnx>=1.12.0; extra == "export"
62
62
  Requires-Dist: coremltools>=7.0; (platform_system != "Windows" and python_version <= "3.11") and extra == "export"
63
63
  Requires-Dist: openvino>=2024.0.0; extra == "export"
64
- Requires-Dist: tensorflow<=2.13.1; python_version <= "3.11" and extra == "export"
65
- Requires-Dist: tensorflowjs>=3.9.0; python_version <= "3.11" and extra == "export"
64
+ Requires-Dist: tensorflow>=2.0.0; extra == "export"
65
+ Requires-Dist: tensorflowjs>=3.9.0; extra == "export"
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"
68
69
  Requires-Dist: h5py!=3.11.0; platform_machine == "aarch64" and extra == "export"
@@ -116,7 +117,7 @@ To request an Enterprise License please complete the form at [Ultralytics Licens
116
117
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
117
118
  <a href="https://twitter.com/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-twitter.png" width="2%" alt="Ultralytics Twitter"></a>
118
119
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
119
- <a href="https://youtube.com/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-youtube.png" width="2%" alt="Ultralytics YouTube"></a>
120
+ <a href="https://youtube.com/ultralytics?sub_confirmation=1"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-youtube.png" width="2%" alt="Ultralytics YouTube"></a>
120
121
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
121
122
  <a href="https://www.tiktok.com/@ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-tiktok.png" width="2%" alt="Ultralytics TikTok"></a>
122
123
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
@@ -184,7 +185,7 @@ See YOLOv8 [Python Docs](https://docs.ultralytics.com/usage/python) for more exa
184
185
 
185
186
  ### Notebooks
186
187
 
187
- Ultralytics provides interactive notebooks for YOLOv8, covering training, validation, tracking, and more. Each notebook is paired with a [YouTube](https://youtube.com/ultralytics) tutorial, making it easy to learn and implement advanced YOLOv8 features.
188
+ Ultralytics provides interactive notebooks for YOLOv8, covering training, validation, tracking, and more. Each notebook is paired with a [YouTube](https://youtube.com/ultralytics?sub_confirmation=1) tutorial, making it easy to learn and implement advanced YOLOv8 features.
188
189
 
189
190
  | Docs | Notebook | YouTube |
190
191
  | --------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
@@ -369,7 +370,7 @@ For Ultralytics bug reports and feature requests please visit [GitHub Issues](ht
369
370
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
370
371
  <a href="https://twitter.com/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-twitter.png" width="3%" alt="Ultralytics Twitter"></a>
371
372
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
372
- <a href="https://youtube.com/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-youtube.png" width="3%" alt="Ultralytics YouTube"></a>
373
+ <a href="https://youtube.com/ultralytics?sub_confirmation=1"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-youtube.png" width="3%" alt="Ultralytics YouTube"></a>
373
374
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
374
375
  <a href="https://www.tiktok.com/@ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-tiktok.png" width="3%" alt="Ultralytics TikTok"></a>
375
376
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
@@ -35,6 +35,9 @@ streamlit
35
35
  [export]
36
36
  onnx>=1.12.0
37
37
  openvino>=2024.0.0
38
+ tensorflow>=2.0.0
39
+ tensorflowjs>=3.9.0
40
+ keras
38
41
 
39
42
  [export:platform_machine == "aarch64"]
40
43
  flatbuffers<100,>=23.5.26
@@ -44,10 +47,6 @@ h5py!=3.11.0
44
47
  [export:platform_system != "Windows" and python_version <= "3.11"]
45
48
  coremltools>=7.0
46
49
 
47
- [export:python_version <= "3.11"]
48
- tensorflow<=2.13.1
49
- tensorflowjs>=3.9.0
50
-
51
50
  [extra]
52
51
  hub-sdk>=0.0.5
53
52
  ipython
@@ -1,7 +0,0 @@
1
- # Ultralytics YOLO 🚀, AGPL-3.0 license
2
-
3
- from .rtdetr import RTDETR
4
- from .sam import SAM
5
- from .yolo import YOLO, YOLOWorld
6
-
7
- __all__ = "YOLO", "RTDETR", "SAM", "YOLOWorld" # allow simpler import
File without changes
File without changes