ultralytics 8.1.36__tar.gz → 8.1.38__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 (210) hide show
  1. {ultralytics-8.1.36/ultralytics.egg-info → ultralytics-8.1.38}/PKG-INFO +1 -1
  2. {ultralytics-8.1.36 → ultralytics-8.1.38}/tests/test_engine.py +6 -2
  3. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/__init__.py +1 -1
  4. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/__init__.py +4 -4
  5. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/default.yaml +2 -2
  6. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/data/augment.py +1 -1
  7. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/data/base.py +2 -0
  8. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/data/dataset.py +5 -4
  9. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/engine/exporter.py +1 -3
  10. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/engine/model.py +14 -4
  11. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/hub/utils.py +2 -2
  12. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/nn/autobackend.py +1 -1
  13. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/trackers/utils/gmc.py +1 -1
  14. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/__init__.py +5 -4
  15. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/callbacks/raytune.py +1 -1
  16. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/tuner.py +2 -2
  17. {ultralytics-8.1.36 → ultralytics-8.1.38/ultralytics.egg-info}/PKG-INFO +1 -1
  18. {ultralytics-8.1.36 → ultralytics-8.1.38}/LICENSE +0 -0
  19. {ultralytics-8.1.36 → ultralytics-8.1.38}/README.md +0 -0
  20. {ultralytics-8.1.36 → ultralytics-8.1.38}/pyproject.toml +0 -0
  21. {ultralytics-8.1.36 → ultralytics-8.1.38}/setup.cfg +0 -0
  22. {ultralytics-8.1.36 → ultralytics-8.1.38}/tests/test_cli.py +0 -0
  23. {ultralytics-8.1.36 → ultralytics-8.1.38}/tests/test_cuda.py +0 -0
  24. {ultralytics-8.1.36 → ultralytics-8.1.38}/tests/test_explorer.py +0 -0
  25. {ultralytics-8.1.36 → ultralytics-8.1.38}/tests/test_integrations.py +0 -0
  26. {ultralytics-8.1.36 → ultralytics-8.1.38}/tests/test_python.py +0 -0
  27. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/assets/bus.jpg +0 -0
  28. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/assets/zidane.jpg +0 -0
  29. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  30. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  31. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  32. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  33. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  34. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  35. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  36. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  37. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  38. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  39. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  40. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  41. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  42. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/coco.yaml +0 -0
  43. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  44. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  45. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  46. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  47. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  48. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  49. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  50. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  51. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  52. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  53. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/datasets/xView.yaml +0 -0
  54. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  55. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  56. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  57. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  58. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  59. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  60. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  61. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  62. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  63. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  64. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  65. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  66. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  67. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  68. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  69. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  70. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  71. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  72. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  73. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  74. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  75. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  76. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  77. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  78. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  79. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  80. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  81. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  82. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  83. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  84. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  85. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/data/__init__.py +0 -0
  86. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/data/annotator.py +0 -0
  87. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/data/build.py +0 -0
  88. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/data/converter.py +0 -0
  89. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/data/explorer/__init__.py +0 -0
  90. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/data/explorer/explorer.py +0 -0
  91. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/data/explorer/gui/__init__.py +0 -0
  92. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/data/explorer/gui/dash.py +0 -0
  93. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/data/explorer/utils.py +0 -0
  94. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/data/loaders.py +0 -0
  95. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/data/split_dota.py +0 -0
  96. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/data/utils.py +0 -0
  97. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/engine/__init__.py +0 -0
  98. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/engine/predictor.py +0 -0
  99. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/engine/results.py +0 -0
  100. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/engine/trainer.py +0 -0
  101. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/engine/tuner.py +0 -0
  102. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/engine/validator.py +0 -0
  103. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/hub/__init__.py +0 -0
  104. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/hub/auth.py +0 -0
  105. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/hub/session.py +0 -0
  106. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/__init__.py +0 -0
  107. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/fastsam/__init__.py +0 -0
  108. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/fastsam/model.py +0 -0
  109. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/fastsam/predict.py +0 -0
  110. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/fastsam/prompt.py +0 -0
  111. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/fastsam/utils.py +0 -0
  112. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/fastsam/val.py +0 -0
  113. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/nas/__init__.py +0 -0
  114. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/nas/model.py +0 -0
  115. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/nas/predict.py +0 -0
  116. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/nas/val.py +0 -0
  117. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/rtdetr/__init__.py +0 -0
  118. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/rtdetr/model.py +0 -0
  119. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/rtdetr/predict.py +0 -0
  120. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/rtdetr/train.py +0 -0
  121. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/rtdetr/val.py +0 -0
  122. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/sam/__init__.py +0 -0
  123. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/sam/amg.py +0 -0
  124. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/sam/build.py +0 -0
  125. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/sam/model.py +0 -0
  126. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/sam/modules/__init__.py +0 -0
  127. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/sam/modules/decoders.py +0 -0
  128. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/sam/modules/encoders.py +0 -0
  129. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/sam/modules/sam.py +0 -0
  130. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  131. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/sam/modules/transformer.py +0 -0
  132. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/sam/predict.py +0 -0
  133. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/utils/__init__.py +0 -0
  134. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/utils/loss.py +0 -0
  135. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/utils/ops.py +0 -0
  136. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/__init__.py +0 -0
  137. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/classify/__init__.py +0 -0
  138. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/classify/predict.py +0 -0
  139. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/classify/train.py +0 -0
  140. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/classify/val.py +0 -0
  141. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/detect/__init__.py +0 -0
  142. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/detect/predict.py +0 -0
  143. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/detect/train.py +0 -0
  144. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/detect/val.py +0 -0
  145. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/model.py +0 -0
  146. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/obb/__init__.py +0 -0
  147. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/obb/predict.py +0 -0
  148. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/obb/train.py +0 -0
  149. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/obb/val.py +0 -0
  150. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/pose/__init__.py +0 -0
  151. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/pose/predict.py +0 -0
  152. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/pose/train.py +0 -0
  153. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/pose/val.py +0 -0
  154. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/segment/__init__.py +0 -0
  155. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/segment/predict.py +0 -0
  156. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/segment/train.py +0 -0
  157. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/models/yolo/segment/val.py +0 -0
  158. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/nn/__init__.py +0 -0
  159. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/nn/modules/__init__.py +0 -0
  160. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/nn/modules/block.py +0 -0
  161. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/nn/modules/conv.py +0 -0
  162. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/nn/modules/head.py +0 -0
  163. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/nn/modules/transformer.py +0 -0
  164. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/nn/modules/utils.py +0 -0
  165. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/nn/tasks.py +0 -0
  166. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/solutions/__init__.py +0 -0
  167. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/solutions/ai_gym.py +0 -0
  168. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/solutions/distance_calculation.py +0 -0
  169. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/solutions/heatmap.py +0 -0
  170. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/solutions/object_counter.py +0 -0
  171. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/solutions/speed_estimation.py +0 -0
  172. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/trackers/__init__.py +0 -0
  173. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/trackers/basetrack.py +0 -0
  174. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/trackers/bot_sort.py +0 -0
  175. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/trackers/byte_tracker.py +0 -0
  176. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/trackers/track.py +0 -0
  177. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/trackers/utils/__init__.py +0 -0
  178. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  179. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/trackers/utils/matching.py +0 -0
  180. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/autobatch.py +0 -0
  181. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/benchmarks.py +0 -0
  182. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/callbacks/__init__.py +0 -0
  183. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/callbacks/base.py +0 -0
  184. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/callbacks/clearml.py +0 -0
  185. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/callbacks/comet.py +0 -0
  186. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/callbacks/dvc.py +0 -0
  187. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/callbacks/hub.py +0 -0
  188. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/callbacks/mlflow.py +0 -0
  189. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/callbacks/neptune.py +0 -0
  190. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  191. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/callbacks/wb.py +0 -0
  192. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/checks.py +0 -0
  193. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/dist.py +0 -0
  194. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/downloads.py +0 -0
  195. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/errors.py +0 -0
  196. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/files.py +0 -0
  197. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/instance.py +0 -0
  198. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/loss.py +0 -0
  199. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/metrics.py +0 -0
  200. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/ops.py +0 -0
  201. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/patches.py +0 -0
  202. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/plotting.py +0 -0
  203. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/tal.py +0 -0
  204. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/torch_utils.py +0 -0
  205. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics/utils/triton.py +0 -0
  206. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics.egg-info/SOURCES.txt +0 -0
  207. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics.egg-info/dependency_links.txt +0 -0
  208. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics.egg-info/entry_points.txt +0 -0
  209. {ultralytics-8.1.36 → ultralytics-8.1.38}/ultralytics.egg-info/requires.txt +0 -0
  210. {ultralytics-8.1.36 → ultralytics-8.1.38}/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.1.36
3
+ Version: 8.1.38
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
@@ -1,5 +1,7 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
+ import sys
4
+ from unittest import mock
3
5
  from ultralytics import YOLO
4
6
  from ultralytics.cfg import get_cfg
5
7
  from ultralytics.engine.exporter import Exporter
@@ -49,8 +51,10 @@ def test_detect():
49
51
  pred = detect.DetectionPredictor(overrides={"imgsz": [64, 64]})
50
52
  pred.add_callback("on_predict_start", test_func)
51
53
  assert test_func in pred.callbacks["on_predict_start"], "callback test failed"
52
- result = pred(source=ASSETS, model=f"{MODEL}.pt")
53
- assert len(result), "predictor test failed"
54
+ # Confirm there is no issue with sys.argv being empty.
55
+ with mock.patch.object(sys, 'argv', []):
56
+ result = pred(source=ASSETS, model=f"{MODEL}.pt")
57
+ assert len(result), "predictor test failed"
54
58
 
55
59
  overrides["resume"] = trainer.last
56
60
  trainer = detect.DetectionTrainer(overrides=overrides)
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.1.36"
3
+ __version__ = "8.1.38"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
@@ -54,8 +54,9 @@ TASK2METRIC = {
54
54
  "obb": "metrics/mAP50-95(B)",
55
55
  }
56
56
 
57
+ ARGV = sys.argv or ["", ""] # sometimes sys.argv = []
57
58
  CLI_HELP_MSG = f"""
58
- Arguments received: {str(['yolo'] + sys.argv[1:])}. Ultralytics 'yolo' commands use the following syntax:
59
+ Arguments received: {str(['yolo'] + ARGV[1:])}. Ultralytics 'yolo' commands use the following syntax:
59
60
 
60
61
  yolo TASK MODE ARGS
61
62
 
@@ -93,7 +94,7 @@ CLI_HELP_MSG = f"""
93
94
  """
94
95
 
95
96
  # Define keys for arg type checks
96
- CFG_FLOAT_KEYS = {"warmup_epochs", "box", "cls", "dfl", "degrees", "shear", "time"}
97
+ CFG_FLOAT_KEYS = {"warmup_epochs", "box", "cls", "dfl", "degrees", "shear", "time", "workspace"}
97
98
  CFG_FRACTION_KEYS = {
98
99
  "dropout",
99
100
  "iou",
@@ -131,7 +132,6 @@ CFG_INT_KEYS = {
131
132
  "max_det",
132
133
  "vid_stride",
133
134
  "line_width",
134
- "workspace",
135
135
  "nbs",
136
136
  "save_period",
137
137
  }
@@ -452,7 +452,7 @@ def entrypoint(debug=""):
452
452
  It uses the package's default cfg and initializes it using the passed overrides.
453
453
  Then it calls the CLI function with the composed cfg
454
454
  """
455
- args = (debug.split(" ") if debug else sys.argv)[1:]
455
+ args = (debug.split(" ") if debug else ARGV)[1:]
456
456
  if not args: # no arguments passed
457
457
  LOGGER.info(CLI_HELP_MSG)
458
458
  return
@@ -116,8 +116,8 @@ mosaic: 1.0 # (float) image mosaic (probability)
116
116
  mixup: 0.0 # (float) image mixup (probability)
117
117
  copy_paste: 0.0 # (float) segment copy-paste (probability)
118
118
  auto_augment: randaugment # (str) auto augmentation policy for classification (randaugment, autoaugment, augmix)
119
- erasing: 0.4 # (float) probability of random erasing during classification training (0-1)
120
- crop_fraction: 1.0 # (float) image crop fraction for classification evaluation/inference (0-1)
119
+ erasing: 0.4 # (float) probability of random erasing during classification training (0-0.9), 0 means no erasing, must be less than 1.0.
120
+ crop_fraction: 1.0 # (float) image crop fraction for classification (0.1-1), 1.0 means no crop, must be greater than 0.
121
121
 
122
122
  # Custom config.yaml ---------------------------------------------------------------------------------------------------
123
123
  cfg: # (str, optional) for overriding defaults.yaml
@@ -1056,7 +1056,7 @@ def classify_transforms(
1056
1056
  return T.Compose(tfl)
1057
1057
 
1058
1058
 
1059
- # Classification augmentations train ---------------------------------------------------------------------------------------
1059
+ # Classification training augmentations --------------------------------------------------------------------------------
1060
1060
  def classify_augmentations(
1061
1061
  size=224,
1062
1062
  mean=DEFAULT_MEAN,
@@ -81,6 +81,8 @@ class BaseDataset(Dataset):
81
81
  if self.rect:
82
82
  assert self.batch_size is not None
83
83
  self.set_rectangle()
84
+ if isinstance(cache, str):
85
+ cache = cache.lower()
84
86
 
85
87
  # Buffer thread for mosaic images
86
88
  self.buffer = [] # buffer size = batch size
@@ -261,8 +261,8 @@ class ClassificationDataset(torchvision.datasets.ImageFolder):
261
261
  if augment and args.fraction < 1.0: # reduce training fraction
262
262
  self.samples = self.samples[: round(len(self.samples) * args.fraction)]
263
263
  self.prefix = colorstr(f"{prefix}: ") if prefix else ""
264
- self.cache_ram = args.cache is True or args.cache == "ram" # cache images into RAM
265
- self.cache_disk = args.cache == "disk" # cache images on hard drive as uncompressed *.npy files
264
+ self.cache_ram = args.cache is True or str(args.cache).lower() == "ram" # cache images into RAM
265
+ self.cache_disk = str(args.cache).lower() == "disk" # cache images on hard drive as uncompressed *.npy files
266
266
  self.samples = self.verify_images() # filter out bad images
267
267
  self.samples = [list(x) + [Path(x[0]).with_suffix(".npy"), None] for x in self.samples] # file, index, npy, im
268
268
  scale = (1.0 - args.scale, 1.0) # (0.08, 1.0)
@@ -285,8 +285,9 @@ class ClassificationDataset(torchvision.datasets.ImageFolder):
285
285
  def __getitem__(self, i):
286
286
  """Returns subset of data and targets corresponding to given indices."""
287
287
  f, j, fn, im = self.samples[i] # filename, index, filename.with_suffix('.npy'), image
288
- if self.cache_ram and im is None:
289
- im = self.samples[i][3] = cv2.imread(f)
288
+ if self.cache_ram:
289
+ if im is None: # Warning: two separate if statements required here, do not combine this with previous line
290
+ im = self.samples[i][3] = cv2.imread(f)
290
291
  elif self.cache_disk:
291
292
  if not fn.exists(): # load npy
292
293
  np.save(fn.as_posix(), cv2.imread(f), allow_pickle=False)
@@ -675,9 +675,7 @@ class Exporter:
675
675
 
676
676
  builder = trt.Builder(logger)
677
677
  config = builder.create_builder_config()
678
- config.max_workspace_size = self.args.workspace * 1 << 30
679
- # config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, workspace << 30) # fix TRT 8.4 deprecation notice
680
-
678
+ config.max_workspace_size = int(self.args.workspace * (1 << 30))
681
679
  flag = 1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)
682
680
  network = builder.create_network(flag)
683
681
  parser = trt.OnnxParser(network, logger)
@@ -1,7 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
3
  import inspect
4
- import sys
5
4
  from pathlib import Path
6
5
  from typing import Union
7
6
 
@@ -11,7 +10,18 @@ import torch
11
10
  from ultralytics.cfg import TASK2DATA, get_cfg, get_save_dir
12
11
  from ultralytics.hub.utils import HUB_WEB_ROOT
13
12
  from ultralytics.nn.tasks import attempt_load_one_weight, guess_model_task, nn, yaml_model_load
14
- from ultralytics.utils import ASSETS, DEFAULT_CFG_DICT, LOGGER, RANK, SETTINGS, callbacks, checks, emojis, yaml_load
13
+ from ultralytics.utils import (
14
+ ARGV,
15
+ ASSETS,
16
+ DEFAULT_CFG_DICT,
17
+ LOGGER,
18
+ RANK,
19
+ SETTINGS,
20
+ callbacks,
21
+ checks,
22
+ emojis,
23
+ yaml_load,
24
+ )
15
25
 
16
26
 
17
27
  class Model(nn.Module):
@@ -421,8 +431,8 @@ class Model(nn.Module):
421
431
  source = ASSETS
422
432
  LOGGER.warning(f"WARNING ⚠️ 'source' is missing. Using 'source={source}'.")
423
433
 
424
- is_cli = (sys.argv[0].endswith("yolo") or sys.argv[0].endswith("ultralytics")) and any(
425
- x in sys.argv for x in ("predict", "track", "mode=predict", "mode=track")
434
+ is_cli = (ARGV[0].endswith("yolo") or ARGV[0].endswith("ultralytics")) and any(
435
+ x in ARGV for x in ("predict", "track", "mode=predict", "mode=track")
426
436
  )
427
437
 
428
438
  custom = {"conf": 0.25, "batch": 1, "save": is_cli, "mode": "predict"} # method defaults
@@ -3,7 +3,6 @@
3
3
  import os
4
4
  import platform
5
5
  import random
6
- import sys
7
6
  import threading
8
7
  import time
9
8
  from pathlib import Path
@@ -11,6 +10,7 @@ from pathlib import Path
11
10
  import requests
12
11
 
13
12
  from ultralytics.utils import (
13
+ ARGV,
14
14
  ENVIRONMENT,
15
15
  LOGGER,
16
16
  ONLINE,
@@ -188,7 +188,7 @@ class Events:
188
188
  self.rate_limit = 60.0 # rate limit (seconds)
189
189
  self.t = 0.0 # rate limit timer (seconds)
190
190
  self.metadata = {
191
- "cli": Path(sys.argv[0]).name == "yolo",
191
+ "cli": Path(ARGV[0]).name == "yolo",
192
192
  "install": "git" if is_git_dir() else "pip" if is_pip_package() else "other",
193
193
  "python": ".".join(platform.python_version_tuple()[:2]), # i.e. 3.10
194
194
  "version": __version__,
@@ -543,7 +543,7 @@ class AutoBackend(nn.Module):
543
543
  if integer:
544
544
  scale, zero_point = output["quantization"]
545
545
  x = (x.astype(np.float32) - zero_point) * scale # re-scale
546
- if x.ndim > 2: # if task is not classification
546
+ if x.ndim == 3: # if task is not classification, excluding masks (ndim=4) as well
547
547
  # Denormalize xywh by image size. See https://github.com/ultralytics/ultralytics/pull/1695
548
548
  # xywh are normalized in TFLite/EdgeTPU to mitigate quantization error of integer models
549
549
  x[:, [0, 2]] *= w
@@ -319,7 +319,7 @@ class GMC:
319
319
  keypoints = cv2.goodFeaturesToTrack(frame, mask=None, **self.feature_params)
320
320
 
321
321
  # Handle first frame
322
- if not self.initializedFirstFrame:
322
+ if not self.initializedFirstFrame or self.prevKeyPoints is None:
323
323
  self.prevFrame = frame.copy()
324
324
  self.prevKeyPoints = copy.copy(keypoints)
325
325
  self.initializedFirstFrame = True
@@ -30,6 +30,7 @@ RANK = int(os.getenv("RANK", -1))
30
30
  LOCAL_RANK = int(os.getenv("LOCAL_RANK", -1)) # https://pytorch.org/docs/stable/elastic/run.html
31
31
 
32
32
  # Other Constants
33
+ ARGV = sys.argv or ["", ""] # sometimes sys.argv = []
33
34
  FILE = Path(__file__).resolve()
34
35
  ROOT = FILE.parents[1] # YOLO
35
36
  ASSETS = ROOT / "assets" # default images
@@ -522,7 +523,7 @@ def is_pytest_running():
522
523
  Returns:
523
524
  (bool): True if pytest is running, False otherwise.
524
525
  """
525
- return ("PYTEST_CURRENT_TEST" in os.environ) or ("pytest" in sys.modules) or ("pytest" in Path(sys.argv[0]).stem)
526
+ return ("PYTEST_CURRENT_TEST" in os.environ) or ("pytest" in sys.modules) or ("pytest" in Path(ARGV[0]).stem)
526
527
 
527
528
 
528
529
  def is_github_action_running() -> bool:
@@ -869,8 +870,8 @@ def set_sentry():
869
870
  return None # do not send event
870
871
 
871
872
  event["tags"] = {
872
- "sys_argv": sys.argv[0],
873
- "sys_argv_name": Path(sys.argv[0]).name,
873
+ "sys_argv": ARGV[0],
874
+ "sys_argv_name": Path(ARGV[0]).name,
874
875
  "install": "git" if is_git_dir() else "pip" if is_pip_package() else "other",
875
876
  "os": ENVIRONMENT,
876
877
  }
@@ -879,7 +880,7 @@ def set_sentry():
879
880
  if (
880
881
  SETTINGS["sync"]
881
882
  and RANK in (-1, 0)
882
- and Path(sys.argv[0]).name == "yolo"
883
+ and Path(ARGV[0]).name == "yolo"
883
884
  and not TESTS_RUNNING
884
885
  and ONLINE
885
886
  and is_pip_package()
@@ -14,7 +14,7 @@ except (ImportError, AssertionError):
14
14
 
15
15
  def on_fit_epoch_end(trainer):
16
16
  """Sends training metrics to Ray Tune at end of each epoch."""
17
- if ray.tune.is_session_enabled():
17
+ if ray.train._internal.session._get_session(): # replacement for deprecated ray.tune.is_session_enabled()
18
18
  metrics = trainer.metrics
19
19
  metrics["epoch"] = trainer.epoch
20
20
  session.report(metrics)
@@ -40,7 +40,7 @@ def run_ray_tune(
40
40
  train_args = {}
41
41
 
42
42
  try:
43
- subprocess.run("pip install ray[tune]<=2.9.3".split(), check=True) # do not add single quotes here
43
+ subprocess.run("pip install ray[tune]".split(), check=True) # do not add single quotes here
44
44
 
45
45
  import ray
46
46
  from ray import tune
@@ -48,7 +48,7 @@ def run_ray_tune(
48
48
  from ray.air.integrations.wandb import WandbLoggerCallback
49
49
  from ray.tune.schedulers import ASHAScheduler
50
50
  except ImportError:
51
- raise ModuleNotFoundError('Ray Tune required but not found. To install run: pip install "ray[tune]<=2.9.3"')
51
+ raise ModuleNotFoundError('Ray Tune required but not found. To install run: pip install "ray[tune]"')
52
52
 
53
53
  try:
54
54
  import wandb
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.1.36
3
+ Version: 8.1.38
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
File without changes
File without changes
File without changes