ultralytics 8.3.75__tar.gz → 8.3.77__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. {ultralytics-8.3.75/ultralytics.egg-info → ultralytics-8.3.77}/PKG-INFO +1 -1
  2. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/__init__.py +1 -1
  3. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/engine/exporter.py +10 -10
  4. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/engine/model.py +1 -0
  5. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/engine/results.py +1 -1
  6. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/engine/trainer.py +1 -1
  7. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/nn/tasks.py +5 -1
  8. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/trackers/track.py +5 -7
  9. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/torch_utils.py +24 -10
  10. {ultralytics-8.3.75 → ultralytics-8.3.77/ultralytics.egg-info}/PKG-INFO +1 -1
  11. {ultralytics-8.3.75 → ultralytics-8.3.77}/LICENSE +0 -0
  12. {ultralytics-8.3.75 → ultralytics-8.3.77}/README.md +0 -0
  13. {ultralytics-8.3.75 → ultralytics-8.3.77}/pyproject.toml +0 -0
  14. {ultralytics-8.3.75 → ultralytics-8.3.77}/setup.cfg +0 -0
  15. {ultralytics-8.3.75 → ultralytics-8.3.77}/tests/__init__.py +0 -0
  16. {ultralytics-8.3.75 → ultralytics-8.3.77}/tests/conftest.py +0 -0
  17. {ultralytics-8.3.75 → ultralytics-8.3.77}/tests/test_cli.py +0 -0
  18. {ultralytics-8.3.75 → ultralytics-8.3.77}/tests/test_cuda.py +0 -0
  19. {ultralytics-8.3.75 → ultralytics-8.3.77}/tests/test_engine.py +0 -0
  20. {ultralytics-8.3.75 → ultralytics-8.3.77}/tests/test_exports.py +0 -0
  21. {ultralytics-8.3.75 → ultralytics-8.3.77}/tests/test_integrations.py +0 -0
  22. {ultralytics-8.3.75 → ultralytics-8.3.77}/tests/test_python.py +0 -0
  23. {ultralytics-8.3.75 → ultralytics-8.3.77}/tests/test_solutions.py +0 -0
  24. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/assets/bus.jpg +0 -0
  25. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/assets/zidane.jpg +0 -0
  26. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/__init__.py +0 -0
  27. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  28. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  29. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  30. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  31. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  32. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  33. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  34. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  35. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  36. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  37. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  38. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  39. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  40. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/coco.yaml +0 -0
  41. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  42. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  43. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  44. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  45. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  46. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  47. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  48. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  49. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  50. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  51. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  52. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  53. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  54. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/signature.yaml +0 -0
  55. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  56. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/datasets/xView.yaml +0 -0
  57. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/default.yaml +0 -0
  58. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  59. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  60. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  61. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  62. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  63. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  64. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  65. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  66. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  67. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  68. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  69. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  70. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  71. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  72. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  73. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  74. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  75. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  76. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  77. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  78. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  79. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  80. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  81. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  82. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  83. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  84. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  85. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  86. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  87. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  88. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  89. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  90. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  91. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  92. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  93. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  94. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  95. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  96. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  97. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  98. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  99. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  100. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  101. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  102. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  103. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  104. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/solutions/default.yaml +0 -0
  105. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  106. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  107. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/data/__init__.py +0 -0
  108. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/data/annotator.py +0 -0
  109. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/data/augment.py +0 -0
  110. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/data/base.py +0 -0
  111. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/data/build.py +0 -0
  112. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/data/converter.py +0 -0
  113. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/data/dataset.py +0 -0
  114. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/data/loaders.py +0 -0
  115. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/data/split_dota.py +0 -0
  116. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/data/utils.py +0 -0
  117. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/engine/__init__.py +0 -0
  118. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/engine/predictor.py +0 -0
  119. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/engine/tuner.py +0 -0
  120. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/engine/validator.py +0 -0
  121. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/hub/__init__.py +0 -0
  122. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/hub/auth.py +0 -0
  123. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/hub/google/__init__.py +0 -0
  124. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/hub/session.py +0 -0
  125. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/hub/utils.py +0 -0
  126. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/__init__.py +0 -0
  127. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/fastsam/__init__.py +0 -0
  128. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/fastsam/model.py +0 -0
  129. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/fastsam/predict.py +0 -0
  130. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/fastsam/utils.py +0 -0
  131. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/fastsam/val.py +0 -0
  132. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/nas/__init__.py +0 -0
  133. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/nas/model.py +0 -0
  134. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/nas/predict.py +0 -0
  135. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/nas/val.py +0 -0
  136. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/rtdetr/__init__.py +0 -0
  137. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/rtdetr/model.py +0 -0
  138. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/rtdetr/predict.py +0 -0
  139. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/rtdetr/train.py +0 -0
  140. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/rtdetr/val.py +0 -0
  141. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/sam/__init__.py +0 -0
  142. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/sam/amg.py +0 -0
  143. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/sam/build.py +0 -0
  144. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/sam/model.py +0 -0
  145. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/sam/modules/__init__.py +0 -0
  146. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/sam/modules/blocks.py +0 -0
  147. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/sam/modules/decoders.py +0 -0
  148. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/sam/modules/encoders.py +0 -0
  149. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  150. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/sam/modules/sam.py +0 -0
  151. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  152. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/sam/modules/transformer.py +0 -0
  153. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/sam/modules/utils.py +0 -0
  154. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/sam/predict.py +0 -0
  155. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/utils/__init__.py +0 -0
  156. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/utils/loss.py +0 -0
  157. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/utils/ops.py +0 -0
  158. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/__init__.py +0 -0
  159. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/classify/__init__.py +0 -0
  160. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/classify/predict.py +0 -0
  161. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/classify/train.py +0 -0
  162. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/classify/val.py +0 -0
  163. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/detect/__init__.py +0 -0
  164. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/detect/predict.py +0 -0
  165. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/detect/train.py +0 -0
  166. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/detect/val.py +0 -0
  167. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/model.py +0 -0
  168. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/obb/__init__.py +0 -0
  169. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/obb/predict.py +0 -0
  170. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/obb/train.py +0 -0
  171. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/obb/val.py +0 -0
  172. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/pose/__init__.py +0 -0
  173. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/pose/predict.py +0 -0
  174. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/pose/train.py +0 -0
  175. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/pose/val.py +0 -0
  176. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/segment/__init__.py +0 -0
  177. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/segment/predict.py +0 -0
  178. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/segment/train.py +0 -0
  179. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/segment/val.py +0 -0
  180. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/world/__init__.py +0 -0
  181. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/world/train.py +0 -0
  182. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/models/yolo/world/train_world.py +0 -0
  183. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/nn/__init__.py +0 -0
  184. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/nn/autobackend.py +0 -0
  185. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/nn/modules/__init__.py +0 -0
  186. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/nn/modules/activation.py +0 -0
  187. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/nn/modules/block.py +0 -0
  188. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/nn/modules/conv.py +0 -0
  189. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/nn/modules/head.py +0 -0
  190. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/nn/modules/transformer.py +0 -0
  191. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/nn/modules/utils.py +0 -0
  192. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/solutions/__init__.py +0 -0
  193. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/solutions/ai_gym.py +0 -0
  194. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/solutions/analytics.py +0 -0
  195. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/solutions/distance_calculation.py +0 -0
  196. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/solutions/heatmap.py +0 -0
  197. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/solutions/object_counter.py +0 -0
  198. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/solutions/parking_management.py +0 -0
  199. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/solutions/queue_management.py +0 -0
  200. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/solutions/region_counter.py +0 -0
  201. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/solutions/security_alarm.py +0 -0
  202. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/solutions/solutions.py +0 -0
  203. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/solutions/speed_estimation.py +0 -0
  204. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/solutions/streamlit_inference.py +0 -0
  205. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/solutions/trackzone.py +0 -0
  206. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/trackers/__init__.py +0 -0
  207. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/trackers/basetrack.py +0 -0
  208. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/trackers/bot_sort.py +0 -0
  209. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/trackers/byte_tracker.py +0 -0
  210. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/trackers/utils/__init__.py +0 -0
  211. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/trackers/utils/gmc.py +0 -0
  212. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  213. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/trackers/utils/matching.py +0 -0
  214. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/__init__.py +0 -0
  215. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/autobatch.py +0 -0
  216. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/benchmarks.py +0 -0
  217. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/callbacks/__init__.py +0 -0
  218. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/callbacks/base.py +0 -0
  219. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/callbacks/clearml.py +0 -0
  220. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/callbacks/comet.py +0 -0
  221. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/callbacks/dvc.py +0 -0
  222. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/callbacks/hub.py +0 -0
  223. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/callbacks/mlflow.py +0 -0
  224. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/callbacks/neptune.py +0 -0
  225. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/callbacks/raytune.py +0 -0
  226. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  227. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/callbacks/wb.py +0 -0
  228. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/checks.py +0 -0
  229. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/dist.py +0 -0
  230. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/downloads.py +0 -0
  231. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/errors.py +0 -0
  232. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/files.py +0 -0
  233. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/instance.py +0 -0
  234. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/loss.py +0 -0
  235. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/metrics.py +0 -0
  236. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/ops.py +0 -0
  237. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/patches.py +0 -0
  238. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/plotting.py +0 -0
  239. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/tal.py +0 -0
  240. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/triton.py +0 -0
  241. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics/utils/tuner.py +0 -0
  242. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics.egg-info/SOURCES.txt +0 -0
  243. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics.egg-info/dependency_links.txt +0 -0
  244. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics.egg-info/entry_points.txt +0 -0
  245. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics.egg-info/requires.txt +0 -0
  246. {ultralytics-8.3.75 → ultralytics-8.3.77}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ultralytics
3
- Version: 8.3.75
3
+ Version: 8.3.77
4
4
  Summary: Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.75"
3
+ __version__ = "8.3.77"
4
4
 
5
5
  import os
6
6
 
@@ -1560,20 +1560,20 @@ class NMSModel(torch.nn.Module):
1560
1560
 
1561
1561
  preds = self.model(x)
1562
1562
  pred = preds[0] if isinstance(preds, tuple) else preds
1563
+ kwargs = dict(device=pred.device, dtype=pred.dtype)
1564
+ bs = pred.shape[0]
1563
1565
  pred = pred.transpose(-1, -2) # shape(1,84,6300) to shape(1,6300,84)
1564
1566
  extra_shape = pred.shape[-1] - (4 + len(self.model.names)) # extras from Segment, OBB, Pose
1567
+ if self.args.dynamic and self.args.batch > 1: # batch size needs to always be same due to loop unroll
1568
+ pad = torch.zeros(torch.max(torch.tensor(self.args.batch - bs), torch.tensor(0)), *pred.shape[1:], **kwargs)
1569
+ pred = torch.cat((pred, pad))
1565
1570
  boxes, scores, extras = pred.split([4, len(self.model.names), extra_shape], dim=2)
1566
1571
  scores, classes = scores.max(dim=-1)
1567
1572
  self.args.max_det = min(pred.shape[1], self.args.max_det) # in case num_anchors < max_det
1568
1573
  # (N, max_det, 4 coords + 1 class score + 1 class label + extra_shape).
1569
- out = torch.zeros(
1570
- boxes.shape[0],
1571
- self.args.max_det,
1572
- boxes.shape[-1] + 2 + extra_shape,
1573
- device=boxes.device,
1574
- dtype=boxes.dtype,
1575
- )
1576
- for i, (box, cls, score, extra) in enumerate(zip(boxes, classes, scores, extras)):
1574
+ out = torch.zeros(bs, self.args.max_det, boxes.shape[-1] + 2 + extra_shape, **kwargs)
1575
+ for i in range(bs):
1576
+ box, cls, score, extra = boxes[i], classes[i], scores[i], extras[i]
1577
1577
  mask = score > self.args.conf
1578
1578
  if self.is_tf:
1579
1579
  # TFLite GatherND error if mask is empty
@@ -1593,7 +1593,7 @@ class NMSModel(torch.nn.Module):
1593
1593
  if self.args.format == "tflite": # TFLite is already normalized
1594
1594
  nmsbox *= multiplier
1595
1595
  else:
1596
- nmsbox = multiplier * nmsbox / torch.tensor(x.shape[2:], device=box.device, dtype=box.dtype).max()
1596
+ nmsbox = multiplier * nmsbox / torch.tensor(x.shape[2:], **kwargs).max()
1597
1597
  if not self.args.agnostic_nms: # class-specific NMS
1598
1598
  end = 2 if self.obb else 4
1599
1599
  # fully explicit expansion otherwise reshape error
@@ -1624,4 +1624,4 @@ class NMSModel(torch.nn.Module):
1624
1624
  # Zero-pad to max_det size to avoid reshape error
1625
1625
  pad = (0, 0, 0, self.args.max_det - dets.shape[0])
1626
1626
  out[i] = torch.nn.functional.pad(dets, pad)
1627
- return (out, preds[1]) if self.model.task == "segment" else out
1627
+ return (out[:bs], preds[1]) if self.model.task == "segment" else out[:bs]
@@ -122,6 +122,7 @@ class Model(torch.nn.Module):
122
122
  self.metrics = None # validation/training metrics
123
123
  self.session = None # HUB session
124
124
  self.task = task # task type
125
+ self.model_name = None # model name
125
126
  model = str(model).strip()
126
127
 
127
128
  # Check if Ultralytics HUB model from https://hub.ultralytics.com
@@ -1016,7 +1016,7 @@ class Boxes(BaseTensor):
1016
1016
  xyxy (torch.Tensor | numpy.ndarray): Boxes in [x1, y1, x2, y2] format.
1017
1017
  conf (torch.Tensor | numpy.ndarray): Confidence scores for each box.
1018
1018
  cls (torch.Tensor | numpy.ndarray): Class labels for each box.
1019
- id (torch.Tensor | numpy.ndarray): Tracking IDs for each box (if available).
1019
+ id (torch.Tensor | None): Tracking IDs for each box (if available).
1020
1020
  xywh (torch.Tensor | numpy.ndarray): Boxes in [x, y, width, height] format.
1021
1021
  xyxyn (torch.Tensor | numpy.ndarray): Normalized [x1, y1, x2, y2] boxes relative to orig_shape.
1022
1022
  xywhn (torch.Tensor | numpy.ndarray): Normalized [x, y, width, height] boxes relative to orig_shape.
@@ -493,7 +493,7 @@ class BaseTrainer:
493
493
  memory = 0
494
494
  else:
495
495
  memory = torch.cuda.memory_reserved()
496
- return memory / 1e9
496
+ return memory / (2**30)
497
497
 
498
498
  def _clear_memory(self):
499
499
  """Clear accelerator memory on different platforms."""
@@ -7,7 +7,6 @@ import types
7
7
  from copy import deepcopy
8
8
  from pathlib import Path
9
9
 
10
- import thop
11
10
  import torch
12
11
 
13
12
  from ultralytics.nn.modules import (
@@ -86,6 +85,11 @@ from ultralytics.utils.torch_utils import (
86
85
  time_sync,
87
86
  )
88
87
 
88
+ try:
89
+ import thop
90
+ except ImportError:
91
+ thop = None # conda support without 'ultralytics-thop' installed
92
+
89
93
 
90
94
  class BaseModel(torch.nn.Module):
91
95
  """The BaseModel class serves as a base class for all the models in the Ultralytics YOLO family."""
@@ -66,25 +66,23 @@ def on_predict_postprocess_end(predictor: object, persist: bool = False) -> None
66
66
  >>> predictor = YourPredictorClass()
67
67
  >>> on_predict_postprocess_end(predictor, persist=True)
68
68
  """
69
- path, im0s = predictor.batch[:2]
70
-
71
69
  is_obb = predictor.args.task == "obb"
72
70
  is_stream = predictor.dataset.mode == "stream"
73
- for i in range(len(im0s)):
71
+ for i, result in enumerate(predictor.results):
74
72
  tracker = predictor.trackers[i if is_stream else 0]
75
- vid_path = predictor.save_dir / Path(path[i]).name
73
+ vid_path = predictor.save_dir / Path(result.path).name
76
74
  if not persist and predictor.vid_path[i if is_stream else 0] != vid_path:
77
75
  tracker.reset()
78
76
  predictor.vid_path[i if is_stream else 0] = vid_path
79
77
 
80
- det = (predictor.results[i].obb if is_obb else predictor.results[i].boxes).cpu().numpy()
78
+ det = (result.obb if is_obb else result.boxes).cpu().numpy()
81
79
  if len(det) == 0:
82
80
  continue
83
- tracks = tracker.update(det, im0s[i])
81
+ tracks = tracker.update(det, result.orig_img)
84
82
  if len(tracks) == 0:
85
83
  continue
86
84
  idx = tracks[:, -1].astype(int)
87
- predictor.results[i] = predictor.results[i][idx]
85
+ predictor.results[i] = result[idx]
88
86
 
89
87
  update_args = {"obb" if is_obb else "boxes": torch.as_tensor(tracks[:, :-1])}
90
88
  predictor.results[i].update(**update_args)
@@ -12,7 +12,6 @@ from pathlib import Path
12
12
  from typing import Union
13
13
 
14
14
  import numpy as np
15
- import thop
16
15
  import torch
17
16
  import torch.distributed as dist
18
17
  import torch.nn as nn
@@ -31,6 +30,11 @@ from ultralytics.utils import (
31
30
  )
32
31
  from ultralytics.utils.checks import check_version
33
32
 
33
+ try:
34
+ import thop
35
+ except ImportError:
36
+ thop = None # conda support without 'ultralytics-thop' installed
37
+
34
38
  # Version checks (all default to version>=min_version)
35
39
  TORCH_1_9 = check_version(torch.__version__, "1.9.0")
36
40
  TORCH_1_13 = check_version(torch.__version__, "1.13.0")
@@ -302,15 +306,22 @@ def model_info(model, detailed=False, verbose=True, imgsz=640):
302
306
  return
303
307
  n_p = get_num_params(model) # number of parameters
304
308
  n_g = get_num_gradients(model) # number of gradients
305
- n_l = len(list(model.modules())) # number of layers
309
+ layers = __import__("collections").OrderedDict((n, m) for n, m in model.named_modules() if len(m._modules) == 0)
310
+ n_l = len(layers) # number of layers
306
311
  if detailed:
307
- LOGGER.info(f"{'layer':>5}{'name':>40}{'gradient':>10}{'parameters':>12}{'shape':>20}{'mu':>10}{'sigma':>10}")
308
- for i, (name, p) in enumerate(model.named_parameters()):
309
- name = name.replace("module_list.", "")
310
- LOGGER.info(
311
- f"{i:>5g}{name:>40s}{p.requires_grad!r:>10}{p.numel():>12g}{str(list(p.shape)):>20s}"
312
- f"{p.mean():>10.3g}{p.std():>10.3g}{str(p.dtype):>15s}"
313
- )
312
+ h = f"{'layer':>5}{'name':>40}{'type':>20}{'gradient':>10}{'parameters':>12}{'shape':>20}{'mu':>10}{'sigma':>10}"
313
+ LOGGER.info(h)
314
+ for i, (mn, m) in enumerate(layers.items()):
315
+ mn = mn.replace("module_list.", "")
316
+ mt = m.__class__.__name__
317
+ if len(m._parameters):
318
+ for pn, p in m.named_parameters():
319
+ LOGGER.info(
320
+ f"{i:>5g}{mn + '.' + pn:>40}{mt:>20}{p.requires_grad!r:>10}{p.numel():>12g}"
321
+ f"{str(list(p.shape)):>20}{p.mean():>10.3g}{p.std():>10.3g}{str(p.dtype).replace('torch.', ''):>15}"
322
+ )
323
+ else: # layers with no learnable params
324
+ LOGGER.info(f"{i:>5g}{mn:>40}{mt:>20}{False!r:>10}{0:>12g}{str([]):>20}{'-':>10}{'-':>10}{'-':>15}")
314
325
 
315
326
  flops = get_flops(model, imgsz) # imgsz may be int or list, i.e. imgsz=640 or imgsz=[640, 320]
316
327
  fused = " (fused)" if getattr(model, "is_fused", lambda: False)() else ""
@@ -363,6 +374,9 @@ def model_info_for_loggers(trainer):
363
374
 
364
375
  def get_flops(model, imgsz=640):
365
376
  """Return a YOLO model's FLOPs."""
377
+ if not thop:
378
+ return 0.0 # if not installed return 0.0 GFLOPs
379
+
366
380
  try:
367
381
  model = de_parallel(model)
368
382
  p = next(model.parameters())
@@ -674,7 +688,7 @@ def profile(input, ops, n=10, device=None, max_num_obj=0):
674
688
  m = m.half() if hasattr(m, "half") and isinstance(x, torch.Tensor) and x.dtype is torch.float16 else m
675
689
  tf, tb, t = 0, 0, [0, 0, 0] # dt forward, backward
676
690
  try:
677
- flops = thop.profile(deepcopy(m), inputs=[x], verbose=False)[0] / 1e9 * 2 # GFLOPs
691
+ flops = thop.profile(deepcopy(m), inputs=[x], verbose=False)[0] / 1e9 * 2 if thop else 0 # GFLOPs
678
692
  except Exception:
679
693
  flops = 0
680
694
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ultralytics
3
- Version: 8.3.75
3
+ Version: 8.3.77
4
4
  Summary: Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
File without changes
File without changes
File without changes