ultralytics 8.2.96__tar.gz → 8.2.97__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 (238) hide show
  1. {ultralytics-8.2.96/ultralytics.egg-info → ultralytics-8.2.97}/PKG-INFO +1 -1
  2. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/__init__.py +1 -1
  3. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/__init__.py +1 -0
  4. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/engine/model.py +5 -17
  5. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/hub/session.py +22 -28
  6. {ultralytics-8.2.96 → ultralytics-8.2.97/ultralytics.egg-info}/PKG-INFO +1 -1
  7. {ultralytics-8.2.96 → ultralytics-8.2.97}/LICENSE +0 -0
  8. {ultralytics-8.2.96 → ultralytics-8.2.97}/README.md +0 -0
  9. {ultralytics-8.2.96 → ultralytics-8.2.97}/pyproject.toml +0 -0
  10. {ultralytics-8.2.96 → ultralytics-8.2.97}/setup.cfg +0 -0
  11. {ultralytics-8.2.96 → ultralytics-8.2.97}/tests/__init__.py +0 -0
  12. {ultralytics-8.2.96 → ultralytics-8.2.97}/tests/conftest.py +0 -0
  13. {ultralytics-8.2.96 → ultralytics-8.2.97}/tests/test_cli.py +0 -0
  14. {ultralytics-8.2.96 → ultralytics-8.2.97}/tests/test_cuda.py +0 -0
  15. {ultralytics-8.2.96 → ultralytics-8.2.97}/tests/test_engine.py +0 -0
  16. {ultralytics-8.2.96 → ultralytics-8.2.97}/tests/test_explorer.py +0 -0
  17. {ultralytics-8.2.96 → ultralytics-8.2.97}/tests/test_exports.py +0 -0
  18. {ultralytics-8.2.96 → ultralytics-8.2.97}/tests/test_integrations.py +0 -0
  19. {ultralytics-8.2.96 → ultralytics-8.2.97}/tests/test_python.py +0 -0
  20. {ultralytics-8.2.96 → ultralytics-8.2.97}/tests/test_solutions.py +0 -0
  21. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/assets/bus.jpg +0 -0
  22. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/assets/zidane.jpg +0 -0
  23. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  24. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  25. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  26. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  27. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  28. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  29. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  30. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  31. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  32. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  33. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  34. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  35. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  36. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/coco.yaml +0 -0
  37. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  38. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  39. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  40. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  41. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  42. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  43. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  44. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  45. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  46. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  47. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/signature.yaml +0 -0
  48. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  49. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/datasets/xView.yaml +0 -0
  50. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/default.yaml +0 -0
  51. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  52. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  53. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  54. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  55. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  56. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  57. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  58. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  59. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  60. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  61. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  62. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  63. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  64. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  65. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  66. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  67. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  68. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  69. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  70. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  71. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  72. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  73. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  74. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  75. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  76. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  77. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  78. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  79. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  80. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  81. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  82. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  83. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  84. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  85. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  86. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  87. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  88. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  89. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  90. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  91. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  92. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  93. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/data/__init__.py +0 -0
  94. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/data/annotator.py +0 -0
  95. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/data/augment.py +0 -0
  96. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/data/base.py +0 -0
  97. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/data/build.py +0 -0
  98. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/data/converter.py +0 -0
  99. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/data/dataset.py +0 -0
  100. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/data/explorer/__init__.py +0 -0
  101. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/data/explorer/explorer.py +0 -0
  102. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/data/explorer/gui/__init__.py +0 -0
  103. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/data/explorer/gui/dash.py +0 -0
  104. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/data/explorer/utils.py +0 -0
  105. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/data/loaders.py +0 -0
  106. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/data/split_dota.py +0 -0
  107. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/data/utils.py +0 -0
  108. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/engine/__init__.py +0 -0
  109. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/engine/exporter.py +0 -0
  110. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/engine/predictor.py +0 -0
  111. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/engine/results.py +0 -0
  112. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/engine/trainer.py +0 -0
  113. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/engine/tuner.py +0 -0
  114. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/engine/validator.py +0 -0
  115. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/hub/__init__.py +0 -0
  116. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/hub/auth.py +0 -0
  117. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/hub/google/__init__.py +0 -0
  118. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/hub/utils.py +0 -0
  119. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/__init__.py +0 -0
  120. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/fastsam/__init__.py +0 -0
  121. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/fastsam/model.py +0 -0
  122. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/fastsam/predict.py +0 -0
  123. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/fastsam/utils.py +0 -0
  124. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/fastsam/val.py +0 -0
  125. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/nas/__init__.py +0 -0
  126. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/nas/model.py +0 -0
  127. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/nas/predict.py +0 -0
  128. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/nas/val.py +0 -0
  129. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/rtdetr/__init__.py +0 -0
  130. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/rtdetr/model.py +0 -0
  131. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/rtdetr/predict.py +0 -0
  132. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/rtdetr/train.py +0 -0
  133. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/rtdetr/val.py +0 -0
  134. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/sam/__init__.py +0 -0
  135. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/sam/amg.py +0 -0
  136. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/sam/build.py +0 -0
  137. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/sam/model.py +0 -0
  138. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/sam/modules/__init__.py +0 -0
  139. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/sam/modules/blocks.py +0 -0
  140. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/sam/modules/decoders.py +0 -0
  141. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/sam/modules/encoders.py +0 -0
  142. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  143. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/sam/modules/sam.py +0 -0
  144. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  145. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/sam/modules/transformer.py +0 -0
  146. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/sam/modules/utils.py +0 -0
  147. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/sam/predict.py +0 -0
  148. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/utils/__init__.py +0 -0
  149. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/utils/loss.py +0 -0
  150. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/utils/ops.py +0 -0
  151. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/__init__.py +0 -0
  152. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/classify/__init__.py +0 -0
  153. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/classify/predict.py +0 -0
  154. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/classify/train.py +0 -0
  155. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/classify/val.py +0 -0
  156. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/detect/__init__.py +0 -0
  157. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/detect/predict.py +0 -0
  158. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/detect/train.py +0 -0
  159. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/detect/val.py +0 -0
  160. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/model.py +0 -0
  161. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/obb/__init__.py +0 -0
  162. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/obb/predict.py +0 -0
  163. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/obb/train.py +0 -0
  164. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/obb/val.py +0 -0
  165. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/pose/__init__.py +0 -0
  166. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/pose/predict.py +0 -0
  167. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/pose/train.py +0 -0
  168. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/pose/val.py +0 -0
  169. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/segment/__init__.py +0 -0
  170. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/segment/predict.py +0 -0
  171. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/segment/train.py +0 -0
  172. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/segment/val.py +0 -0
  173. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/world/__init__.py +0 -0
  174. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/world/train.py +0 -0
  175. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/models/yolo/world/train_world.py +0 -0
  176. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/nn/__init__.py +0 -0
  177. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/nn/autobackend.py +0 -0
  178. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/nn/modules/__init__.py +0 -0
  179. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/nn/modules/activation.py +0 -0
  180. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/nn/modules/block.py +0 -0
  181. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/nn/modules/conv.py +0 -0
  182. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/nn/modules/head.py +0 -0
  183. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/nn/modules/transformer.py +0 -0
  184. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/nn/modules/utils.py +0 -0
  185. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/nn/tasks.py +0 -0
  186. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/solutions/__init__.py +0 -0
  187. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/solutions/ai_gym.py +0 -0
  188. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/solutions/analytics.py +0 -0
  189. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/solutions/distance_calculation.py +0 -0
  190. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/solutions/heatmap.py +0 -0
  191. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/solutions/object_counter.py +0 -0
  192. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/solutions/parking_management.py +0 -0
  193. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/solutions/queue_management.py +0 -0
  194. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/solutions/speed_estimation.py +0 -0
  195. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/solutions/streamlit_inference.py +0 -0
  196. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/trackers/__init__.py +0 -0
  197. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/trackers/basetrack.py +0 -0
  198. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/trackers/bot_sort.py +0 -0
  199. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/trackers/byte_tracker.py +0 -0
  200. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/trackers/track.py +0 -0
  201. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/trackers/utils/__init__.py +0 -0
  202. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/trackers/utils/gmc.py +0 -0
  203. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  204. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/trackers/utils/matching.py +0 -0
  205. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/__init__.py +0 -0
  206. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/autobatch.py +0 -0
  207. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/benchmarks.py +0 -0
  208. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/callbacks/__init__.py +0 -0
  209. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/callbacks/base.py +0 -0
  210. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/callbacks/clearml.py +0 -0
  211. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/callbacks/comet.py +0 -0
  212. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/callbacks/dvc.py +0 -0
  213. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/callbacks/hub.py +0 -0
  214. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/callbacks/mlflow.py +0 -0
  215. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/callbacks/neptune.py +0 -0
  216. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/callbacks/raytune.py +0 -0
  217. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  218. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/callbacks/wb.py +0 -0
  219. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/checks.py +0 -0
  220. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/dist.py +0 -0
  221. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/downloads.py +0 -0
  222. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/errors.py +0 -0
  223. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/files.py +0 -0
  224. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/instance.py +0 -0
  225. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/loss.py +0 -0
  226. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/metrics.py +0 -0
  227. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/ops.py +0 -0
  228. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/patches.py +0 -0
  229. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/plotting.py +0 -0
  230. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/tal.py +0 -0
  231. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/torch_utils.py +0 -0
  232. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/triton.py +0 -0
  233. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics/utils/tuner.py +0 -0
  234. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics.egg-info/SOURCES.txt +0 -0
  235. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics.egg-info/dependency_links.txt +0 -0
  236. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics.egg-info/entry_points.txt +0 -0
  237. {ultralytics-8.2.96 → ultralytics-8.2.97}/ultralytics.egg-info/requires.txt +0 -0
  238. {ultralytics-8.2.96 → ultralytics-8.2.97}/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.96
3
+ Version: 8.2.97
4
4
  Summary: Ultralytics YOLO 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
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.2.96"
3
+ __version__ = "8.2.97"
4
4
 
5
5
 
6
6
  import os
@@ -712,6 +712,7 @@ def entrypoint(debug=""):
712
712
  "cfg": lambda: yaml_print(DEFAULT_CFG_PATH),
713
713
  "hub": lambda: handle_yolo_hub(args[1:]),
714
714
  "login": lambda: handle_yolo_hub(args),
715
+ "logout": lambda: handle_yolo_hub(args),
715
716
  "copy-cfg": copy_default_cfg,
716
717
  "explorer": lambda: handle_explorer(args[1:]),
717
718
  "streamlit-predict": lambda: handle_streamlit_inference(),
@@ -206,33 +206,21 @@ class Model(nn.Module):
206
206
  Check if the provided model is an Ultralytics HUB model.
207
207
 
208
208
  This static method determines whether the given model string represents a valid Ultralytics HUB model
209
- identifier. It checks for three possible formats: a full HUB URL, an API key and model ID combination,
210
- or a standalone model ID.
209
+ identifier.
211
210
 
212
211
  Args:
213
- model (str): The model identifier to check. This can be a URL, an API key and model ID
214
- combination, or a standalone model ID.
212
+ model (str): The model string to check.
215
213
 
216
214
  Returns:
217
215
  (bool): True if the model is a valid Ultralytics HUB model, False otherwise.
218
216
 
219
217
  Examples:
220
- >>> Model.is_hub_model("https://hub.ultralytics.com/models/example_model")
218
+ >>> Model.is_hub_model("https://hub.ultralytics.com/models/MODEL")
221
219
  True
222
- >>> Model.is_hub_model("api_key_example_model_id")
223
- True
224
- >>> Model.is_hub_model("example_model_id")
225
- True
226
- >>> Model.is_hub_model("not_a_hub_model.pt")
220
+ >>> Model.is_hub_model("yolov8n.pt")
227
221
  False
228
222
  """
229
- return any(
230
- (
231
- model.startswith(f"{HUB_WEB_ROOT}/models/"), # i.e. https://hub.ultralytics.com/models/MODEL_ID
232
- [len(x) for x in model.split("_")] == [42, 20], # APIKEY_MODEL
233
- len(model) == 20 and not Path(model).exists() and all(x not in model for x in "./\\"), # MODEL
234
- )
235
- )
223
+ return model.startswith(f"{HUB_WEB_ROOT}/models/")
236
224
 
237
225
  def _new(self, cfg: str, task=None, model=None, verbose=False) -> None:
238
226
  """
@@ -5,6 +5,7 @@ import threading
5
5
  import time
6
6
  from http import HTTPStatus
7
7
  from pathlib import Path
8
+ from urllib.parse import parse_qs, urlparse
8
9
 
9
10
  import requests
10
11
 
@@ -77,7 +78,6 @@ class HUBTrainingSession:
77
78
  if not session.client.authenticated:
78
79
  if identifier.startswith(f"{HUB_WEB_ROOT}/models/"):
79
80
  LOGGER.warning(f"{PREFIX}WARNING ⚠️ Login to Ultralytics HUB with 'yolo hub login API_KEY'.")
80
- exit()
81
81
  return None
82
82
  if args and not identifier.startswith(f"{HUB_WEB_ROOT}/models/"): # not a HUB model URL
83
83
  session.create_model(args)
@@ -96,7 +96,8 @@ class HUBTrainingSession:
96
96
  self.model_url = f"{HUB_WEB_ROOT}/models/{self.model.id}"
97
97
  if self.model.is_trained():
98
98
  print(emojis(f"Loading trained HUB model {self.model_url} 🚀"))
99
- self.model_file = self.model.get_weights_url("best")
99
+ url = self.model.get_weights_url("best") # download URL with auth
100
+ self.model_file = checks.check_file(url, download_dir=Path(SETTINGS["weights_dir"]) / "hub" / self.model.id)
100
101
  return
101
102
 
102
103
  # Set training args and start heartbeats for HUB to monitor agent
@@ -146,9 +147,8 @@ class HUBTrainingSession:
146
147
  Parses the given identifier to determine the type of identifier and extract relevant components.
147
148
 
148
149
  The method supports different identifier formats:
149
- - A HUB URL, which starts with HUB_WEB_ROOT followed by '/models/'
150
- - An identifier containing an API key and a model ID separated by an underscore
151
- - An identifier that is solely a model ID of a fixed length
150
+ - A HUB model URL https://hub.ultralytics.com/models/MODEL
151
+ - A HUB model URL with API Key https://hub.ultralytics.com/models/MODEL?api_key=APIKEY
152
152
  - A local filename that ends with '.pt' or '.yaml'
153
153
 
154
154
  Args:
@@ -160,32 +160,26 @@ class HUBTrainingSession:
160
160
  Raises:
161
161
  HUBModelError: If the identifier format is not recognized.
162
162
  """
163
- # Initialize variables
164
163
  api_key, model_id, filename = None, None, None
165
164
 
166
- # Check if identifier is a HUB URL
167
- if identifier.startswith(f"{HUB_WEB_ROOT}/models/"):
168
- # Extract the model_id after the HUB_WEB_ROOT URL
169
- model_id = identifier.split(f"{HUB_WEB_ROOT}/models/")[-1]
165
+ # path = identifier.split(f"{HUB_WEB_ROOT}/models/")[-1]
166
+ # parts = path.split("_")
167
+ # if Path(path).suffix in {".pt", ".yaml"}:
168
+ # filename = path
169
+ # elif len(parts) == 2 and len(parts[0]) == 42 and len(parts[1]) == 20:
170
+ # api_key, model_id = parts
171
+ # elif len(path) == 20:
172
+ # model_id = path
173
+
174
+ if Path(identifier).suffix in {".pt", ".yaml"}:
175
+ filename = identifier
176
+ elif identifier.startswith(f"{HUB_WEB_ROOT}/models/"):
177
+ parsed_url = urlparse(identifier)
178
+ model_id = Path(parsed_url.path).stem # handle possible final backslash robustly
179
+ query_params = parse_qs(parsed_url.query) # dictionary, i.e. {"api_key": ["API_KEY_HERE"]}
180
+ api_key = query_params.get("api_key", [None])[0]
170
181
  else:
171
- # Split the identifier based on underscores only if it's not a HUB URL
172
- parts = identifier.split("_")
173
-
174
- # Check if identifier is in the format of API key and model ID
175
- if len(parts) == 2 and len(parts[0]) == 42 and len(parts[1]) == 20:
176
- api_key, model_id = parts
177
- # Check if identifier is a single model ID
178
- elif len(parts) == 1 and len(parts[0]) == 20:
179
- model_id = parts[0]
180
- # Check if identifier is a local filename
181
- elif identifier.endswith(".pt") or identifier.endswith(".yaml"):
182
- filename = identifier
183
- else:
184
- raise HUBModelError(
185
- f"model='{identifier}' could not be parsed. Check format is correct. "
186
- f"Supported formats are Ultralytics HUB URL, apiKey_modelId, modelId, local pt or yaml file."
187
- )
188
-
182
+ raise HUBModelError(f"model='{identifier} invalid, correct format is {HUB_WEB_ROOT}/models/MODEL_ID")
189
183
  return api_key, model_id, filename
190
184
 
191
185
  def _set_train_args(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.2.96
3
+ Version: 8.2.97
4
4
  Summary: Ultralytics YOLO 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
File without changes
File without changes
File without changes