ultralytics 8.2.94__tar.gz → 8.2.95__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.94/ultralytics.egg-info → ultralytics-8.2.95}/PKG-INFO +20 -26
  2. {ultralytics-8.2.94 → ultralytics-8.2.95}/README.md +19 -25
  3. {ultralytics-8.2.94 → ultralytics-8.2.95}/tests/__init__.py +3 -2
  4. {ultralytics-8.2.94 → ultralytics-8.2.95}/tests/test_python.py +36 -6
  5. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/__init__.py +1 -1
  6. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/engine/trainer.py +6 -5
  7. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/nn/tasks.py +4 -0
  8. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/torch_utils.py +8 -5
  9. {ultralytics-8.2.94 → ultralytics-8.2.95/ultralytics.egg-info}/PKG-INFO +20 -26
  10. {ultralytics-8.2.94 → ultralytics-8.2.95}/LICENSE +0 -0
  11. {ultralytics-8.2.94 → ultralytics-8.2.95}/pyproject.toml +0 -0
  12. {ultralytics-8.2.94 → ultralytics-8.2.95}/setup.cfg +0 -0
  13. {ultralytics-8.2.94 → ultralytics-8.2.95}/tests/conftest.py +0 -0
  14. {ultralytics-8.2.94 → ultralytics-8.2.95}/tests/test_cli.py +0 -0
  15. {ultralytics-8.2.94 → ultralytics-8.2.95}/tests/test_cuda.py +0 -0
  16. {ultralytics-8.2.94 → ultralytics-8.2.95}/tests/test_engine.py +0 -0
  17. {ultralytics-8.2.94 → ultralytics-8.2.95}/tests/test_explorer.py +0 -0
  18. {ultralytics-8.2.94 → ultralytics-8.2.95}/tests/test_exports.py +0 -0
  19. {ultralytics-8.2.94 → ultralytics-8.2.95}/tests/test_integrations.py +0 -0
  20. {ultralytics-8.2.94 → ultralytics-8.2.95}/tests/test_solutions.py +0 -0
  21. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/assets/bus.jpg +0 -0
  22. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/assets/zidane.jpg +0 -0
  23. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/__init__.py +0 -0
  24. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  25. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  26. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  27. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  28. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  29. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  30. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  31. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  32. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  33. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  34. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  35. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  36. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  37. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/coco.yaml +0 -0
  38. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  39. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  40. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  41. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  42. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  43. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  44. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  45. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  46. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  47. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  48. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/signature.yaml +0 -0
  49. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  50. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/datasets/xView.yaml +0 -0
  51. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/default.yaml +0 -0
  52. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  53. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  54. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  55. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  56. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  57. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  58. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  59. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  60. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  61. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  62. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  63. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  64. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  65. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  66. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  67. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  68. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  69. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  70. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  71. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  72. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  73. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  74. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  75. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  76. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  77. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  78. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  79. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  80. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  81. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  82. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  83. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  84. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  85. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  86. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  87. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  88. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  89. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  90. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  91. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  92. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  93. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  94. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/data/__init__.py +0 -0
  95. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/data/annotator.py +0 -0
  96. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/data/augment.py +0 -0
  97. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/data/base.py +0 -0
  98. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/data/build.py +0 -0
  99. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/data/converter.py +0 -0
  100. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/data/dataset.py +0 -0
  101. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/data/explorer/__init__.py +0 -0
  102. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/data/explorer/explorer.py +0 -0
  103. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/data/explorer/gui/__init__.py +0 -0
  104. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/data/explorer/gui/dash.py +0 -0
  105. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/data/explorer/utils.py +0 -0
  106. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/data/loaders.py +0 -0
  107. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/data/split_dota.py +0 -0
  108. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/data/utils.py +0 -0
  109. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/engine/__init__.py +0 -0
  110. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/engine/exporter.py +0 -0
  111. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/engine/model.py +0 -0
  112. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/engine/predictor.py +0 -0
  113. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/engine/results.py +0 -0
  114. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/engine/tuner.py +0 -0
  115. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/engine/validator.py +0 -0
  116. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/hub/__init__.py +0 -0
  117. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/hub/auth.py +0 -0
  118. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/hub/google/__init__.py +0 -0
  119. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/hub/session.py +0 -0
  120. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/hub/utils.py +0 -0
  121. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/__init__.py +0 -0
  122. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/fastsam/__init__.py +0 -0
  123. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/fastsam/model.py +0 -0
  124. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/fastsam/predict.py +0 -0
  125. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/fastsam/utils.py +0 -0
  126. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/fastsam/val.py +0 -0
  127. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/nas/__init__.py +0 -0
  128. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/nas/model.py +0 -0
  129. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/nas/predict.py +0 -0
  130. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/nas/val.py +0 -0
  131. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/rtdetr/__init__.py +0 -0
  132. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/rtdetr/model.py +0 -0
  133. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/rtdetr/predict.py +0 -0
  134. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/rtdetr/train.py +0 -0
  135. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/rtdetr/val.py +0 -0
  136. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/sam/__init__.py +0 -0
  137. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/sam/amg.py +0 -0
  138. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/sam/build.py +0 -0
  139. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/sam/model.py +0 -0
  140. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/sam/modules/__init__.py +0 -0
  141. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/sam/modules/blocks.py +0 -0
  142. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/sam/modules/decoders.py +0 -0
  143. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/sam/modules/encoders.py +0 -0
  144. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  145. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/sam/modules/sam.py +0 -0
  146. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  147. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/sam/modules/transformer.py +0 -0
  148. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/sam/modules/utils.py +0 -0
  149. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/sam/predict.py +0 -0
  150. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/utils/__init__.py +0 -0
  151. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/utils/loss.py +0 -0
  152. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/utils/ops.py +0 -0
  153. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/__init__.py +0 -0
  154. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/classify/__init__.py +0 -0
  155. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/classify/predict.py +0 -0
  156. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/classify/train.py +0 -0
  157. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/classify/val.py +0 -0
  158. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/detect/__init__.py +0 -0
  159. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/detect/predict.py +0 -0
  160. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/detect/train.py +0 -0
  161. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/detect/val.py +0 -0
  162. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/model.py +0 -0
  163. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/obb/__init__.py +0 -0
  164. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/obb/predict.py +0 -0
  165. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/obb/train.py +0 -0
  166. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/obb/val.py +0 -0
  167. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/pose/__init__.py +0 -0
  168. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/pose/predict.py +0 -0
  169. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/pose/train.py +0 -0
  170. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/pose/val.py +0 -0
  171. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/segment/__init__.py +0 -0
  172. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/segment/predict.py +0 -0
  173. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/segment/train.py +0 -0
  174. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/segment/val.py +0 -0
  175. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/world/__init__.py +0 -0
  176. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/world/train.py +0 -0
  177. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/models/yolo/world/train_world.py +0 -0
  178. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/nn/__init__.py +0 -0
  179. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/nn/autobackend.py +0 -0
  180. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/nn/modules/__init__.py +0 -0
  181. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/nn/modules/activation.py +0 -0
  182. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/nn/modules/block.py +0 -0
  183. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/nn/modules/conv.py +0 -0
  184. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/nn/modules/head.py +0 -0
  185. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/nn/modules/transformer.py +0 -0
  186. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/nn/modules/utils.py +0 -0
  187. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/solutions/__init__.py +0 -0
  188. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/solutions/ai_gym.py +0 -0
  189. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/solutions/analytics.py +0 -0
  190. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/solutions/distance_calculation.py +0 -0
  191. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/solutions/heatmap.py +0 -0
  192. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/solutions/object_counter.py +0 -0
  193. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/solutions/parking_management.py +0 -0
  194. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/solutions/queue_management.py +0 -0
  195. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/solutions/speed_estimation.py +0 -0
  196. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/solutions/streamlit_inference.py +0 -0
  197. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/trackers/__init__.py +0 -0
  198. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/trackers/basetrack.py +0 -0
  199. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/trackers/bot_sort.py +0 -0
  200. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/trackers/byte_tracker.py +0 -0
  201. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/trackers/track.py +0 -0
  202. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/trackers/utils/__init__.py +0 -0
  203. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/trackers/utils/gmc.py +0 -0
  204. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  205. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/trackers/utils/matching.py +0 -0
  206. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/__init__.py +0 -0
  207. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/autobatch.py +0 -0
  208. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/benchmarks.py +0 -0
  209. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/callbacks/__init__.py +0 -0
  210. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/callbacks/base.py +0 -0
  211. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/callbacks/clearml.py +0 -0
  212. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/callbacks/comet.py +0 -0
  213. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/callbacks/dvc.py +0 -0
  214. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/callbacks/hub.py +0 -0
  215. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/callbacks/mlflow.py +0 -0
  216. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/callbacks/neptune.py +0 -0
  217. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/callbacks/raytune.py +0 -0
  218. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  219. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/callbacks/wb.py +0 -0
  220. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/checks.py +0 -0
  221. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/dist.py +0 -0
  222. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/downloads.py +0 -0
  223. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/errors.py +0 -0
  224. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/files.py +0 -0
  225. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/instance.py +0 -0
  226. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/loss.py +0 -0
  227. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/metrics.py +0 -0
  228. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/ops.py +0 -0
  229. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/patches.py +0 -0
  230. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/plotting.py +0 -0
  231. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/tal.py +0 -0
  232. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/triton.py +0 -0
  233. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics/utils/tuner.py +0 -0
  234. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics.egg-info/SOURCES.txt +0 -0
  235. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics.egg-info/dependency_links.txt +0 -0
  236. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics.egg-info/entry_points.txt +0 -0
  237. {ultralytics-8.2.94 → ultralytics-8.2.95}/ultralytics.egg-info/requires.txt +0 -0
  238. {ultralytics-8.2.94 → ultralytics-8.2.95}/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.94
3
+ Version: 8.2.95
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
@@ -172,14 +172,25 @@ YOLOv8 may also be used directly in a Python environment, and accepts the same [
172
172
  from ultralytics import YOLO
173
173
 
174
174
  # Load a model
175
- model = YOLO("yolov8n.yaml") # build a new model from scratch
176
- model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
177
-
178
- # Use the model
179
- model.train(data="coco8.yaml", epochs=3) # train the model
180
- metrics = model.val() # evaluate model performance on the validation set
181
- results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
182
- path = model.export(format="onnx") # export the model to ONNX format
175
+ model = YOLO("yolov8n.pt")
176
+
177
+ # Train the model
178
+ train_results = model.train(
179
+ data="coco8.yaml", # path to dataset YAML
180
+ epochs=100, # number of training epochs
181
+ imgsz=640, # training image size
182
+ device="cpu", # device to run on, i.e. device=0 or device=0,1,2,3 or device=cpu
183
+ )
184
+
185
+ # Evaluate model performance on the validation set
186
+ metrics = model.val()
187
+
188
+ # Perform object detection on an image
189
+ results = model("path/to/image.jpg")
190
+ results[0].show()
191
+
192
+ # Export the model to ONNX format
193
+ path = model.export(format="onnx") # return path to exported model
183
194
  ```
184
195
 
185
196
  See YOLOv8 [Python Docs](https://docs.ultralytics.com/usage/python/) for more examples.
@@ -224,23 +235,6 @@ See [Detection Docs](https://docs.ultralytics.com/tasks/detect/) for usage examp
224
235
 
225
236
  </details>
226
237
 
227
- <details><summary>Detection (Open Image V7)</summary>
228
-
229
- See [Detection Docs](https://docs.ultralytics.com/tasks/detect/) for usage examples with these models trained on [Open Image V7](https://docs.ultralytics.com/datasets/detect/open-images-v7/), which include 600 pre-trained classes.
230
-
231
- | Model | size<br><sup>(pixels) | mAP<sup>val<br>50-95 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>A100 TensorRT<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
232
- | ----------------------------------------------------------------------------------------- | --------------------- | -------------------- | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
233
- | [YOLOv8n](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-oiv7.pt) | 640 | 18.4 | 142.4 | 1.21 | 3.5 | 10.5 |
234
- | [YOLOv8s](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s-oiv7.pt) | 640 | 27.7 | 183.1 | 1.40 | 11.4 | 29.7 |
235
- | [YOLOv8m](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m-oiv7.pt) | 640 | 33.6 | 408.5 | 2.26 | 26.2 | 80.6 |
236
- | [YOLOv8l](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l-oiv7.pt) | 640 | 34.9 | 596.9 | 2.43 | 44.1 | 167.4 |
237
- | [YOLOv8x](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x-oiv7.pt) | 640 | 36.3 | 860.6 | 3.56 | 68.7 | 260.6 |
238
-
239
- - **mAP<sup>val</sup>** values are for single-model single-scale on [Open Image V7](https://docs.ultralytics.com/datasets/detect/open-images-v7/) dataset. <br>Reproduce by `yolo val detect data=open-images-v7.yaml device=0`
240
- - **Speed** averaged over Open Image V7 val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. <br>Reproduce by `yolo val detect data=open-images-v7.yaml batch=1 device=0|cpu`
241
-
242
- </details>
243
-
244
238
  <details><summary>Segmentation (COCO)</summary>
245
239
 
246
240
  See [Segmentation Docs](https://docs.ultralytics.com/tasks/segment/) for usage examples with these models trained on [COCO-Seg](https://docs.ultralytics.com/datasets/segment/coco/), which include 80 pre-trained classes.
@@ -87,14 +87,25 @@ YOLOv8 may also be used directly in a Python environment, and accepts the same [
87
87
  from ultralytics import YOLO
88
88
 
89
89
  # Load a model
90
- model = YOLO("yolov8n.yaml") # build a new model from scratch
91
- model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
92
-
93
- # Use the model
94
- model.train(data="coco8.yaml", epochs=3) # train the model
95
- metrics = model.val() # evaluate model performance on the validation set
96
- results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
97
- path = model.export(format="onnx") # export the model to ONNX format
90
+ model = YOLO("yolov8n.pt")
91
+
92
+ # Train the model
93
+ train_results = model.train(
94
+ data="coco8.yaml", # path to dataset YAML
95
+ epochs=100, # number of training epochs
96
+ imgsz=640, # training image size
97
+ device="cpu", # device to run on, i.e. device=0 or device=0,1,2,3 or device=cpu
98
+ )
99
+
100
+ # Evaluate model performance on the validation set
101
+ metrics = model.val()
102
+
103
+ # Perform object detection on an image
104
+ results = model("path/to/image.jpg")
105
+ results[0].show()
106
+
107
+ # Export the model to ONNX format
108
+ path = model.export(format="onnx") # return path to exported model
98
109
  ```
99
110
 
100
111
  See YOLOv8 [Python Docs](https://docs.ultralytics.com/usage/python/) for more examples.
@@ -139,23 +150,6 @@ See [Detection Docs](https://docs.ultralytics.com/tasks/detect/) for usage examp
139
150
 
140
151
  </details>
141
152
 
142
- <details><summary>Detection (Open Image V7)</summary>
143
-
144
- See [Detection Docs](https://docs.ultralytics.com/tasks/detect/) for usage examples with these models trained on [Open Image V7](https://docs.ultralytics.com/datasets/detect/open-images-v7/), which include 600 pre-trained classes.
145
-
146
- | Model | size<br><sup>(pixels) | mAP<sup>val<br>50-95 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>A100 TensorRT<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
147
- | ----------------------------------------------------------------------------------------- | --------------------- | -------------------- | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
148
- | [YOLOv8n](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-oiv7.pt) | 640 | 18.4 | 142.4 | 1.21 | 3.5 | 10.5 |
149
- | [YOLOv8s](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s-oiv7.pt) | 640 | 27.7 | 183.1 | 1.40 | 11.4 | 29.7 |
150
- | [YOLOv8m](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m-oiv7.pt) | 640 | 33.6 | 408.5 | 2.26 | 26.2 | 80.6 |
151
- | [YOLOv8l](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l-oiv7.pt) | 640 | 34.9 | 596.9 | 2.43 | 44.1 | 167.4 |
152
- | [YOLOv8x](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x-oiv7.pt) | 640 | 36.3 | 860.6 | 3.56 | 68.7 | 260.6 |
153
-
154
- - **mAP<sup>val</sup>** values are for single-model single-scale on [Open Image V7](https://docs.ultralytics.com/datasets/detect/open-images-v7/) dataset. <br>Reproduce by `yolo val detect data=open-images-v7.yaml device=0`
155
- - **Speed** averaged over Open Image V7 val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. <br>Reproduce by `yolo val detect data=open-images-v7.yaml batch=1 device=0|cpu`
156
-
157
- </details>
158
-
159
153
  <details><summary>Segmentation (COCO)</summary>
160
154
 
161
155
  See [Segmentation Docs](https://docs.ultralytics.com/tasks/segment/) for usage examples with these models trained on [COCO-Seg](https://docs.ultralytics.com/datasets/segment/coco/), which include 80 pre-trained classes.
@@ -1,13 +1,13 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- from ultralytics.utils import ASSETS, ROOT, WEIGHTS_DIR, checks, is_dir_writeable
3
+ from ultralytics.utils import ASSETS, ROOT, WEIGHTS_DIR, checks
4
4
 
5
5
  # Constants used in tests
6
6
  MODEL = WEIGHTS_DIR / "path with spaces" / "yolov8n.pt" # test spaces in path
7
7
  CFG = "yolov8n.yaml"
8
8
  SOURCE = ASSETS / "bus.jpg"
9
+ SOURCES_LIST = [ASSETS / "bus.jpg", ASSETS, ASSETS / "*", ASSETS / "**/*.jpg"]
9
10
  TMP = (ROOT / "../tests/tmp").resolve() # temp directory for test files
10
- IS_TMP_WRITEABLE = is_dir_writeable(TMP)
11
11
  CUDA_IS_AVAILABLE = checks.cuda_is_available()
12
12
  CUDA_DEVICE_COUNT = checks.cuda_device_count()
13
13
 
@@ -15,6 +15,7 @@ __all__ = (
15
15
  "MODEL",
16
16
  "CFG",
17
17
  "SOURCE",
18
+ "SOURCES_LIST",
18
19
  "TMP",
19
20
  "IS_TMP_WRITEABLE",
20
21
  "CUDA_IS_AVAILABLE",
@@ -1,6 +1,7 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
3
  import contextlib
4
+ import csv
4
5
  import urllib
5
6
  from copy import copy
6
7
  from pathlib import Path
@@ -12,7 +13,7 @@ import torch
12
13
  import yaml
13
14
  from PIL import Image
14
15
 
15
- from tests import CFG, IS_TMP_WRITEABLE, MODEL, SOURCE, TMP
16
+ from tests import CFG, MODEL, SOURCE, SOURCES_LIST, TMP
16
17
  from ultralytics import RTDETR, YOLO
17
18
  from ultralytics.cfg import MODELS, TASK2DATA, TASKS
18
19
  from ultralytics.data.build import load_inference_source
@@ -26,11 +27,14 @@ from ultralytics.utils import (
26
27
  WEIGHTS_DIR,
27
28
  WINDOWS,
28
29
  checks,
30
+ is_dir_writeable,
29
31
  is_github_action_running,
30
32
  )
31
33
  from ultralytics.utils.downloads import download
32
34
  from ultralytics.utils.torch_utils import TORCH_1_9
33
35
 
36
+ IS_TMP_WRITEABLE = is_dir_writeable(TMP) # WARNING: must be run once tests start as TMP does not exist on tests/init
37
+
34
38
 
35
39
  def test_model_forward():
36
40
  """Test the forward pass of the YOLO model."""
@@ -70,11 +74,37 @@ def test_model_profile():
70
74
  @pytest.mark.skipif(not IS_TMP_WRITEABLE, reason="directory is not writeable")
71
75
  def test_predict_txt():
72
76
  """Tests YOLO predictions with file, directory, and pattern sources listed in a text file."""
73
- txt_file = TMP / "sources.txt"
74
- with open(txt_file, "w") as f:
75
- for x in [ASSETS / "bus.jpg", ASSETS, ASSETS / "*", ASSETS / "**/*.jpg"]:
76
- f.write(f"{x}\n")
77
- _ = YOLO(MODEL)(source=txt_file, imgsz=32)
77
+ file = TMP / "sources_multi_row.txt"
78
+ with open(file, "w") as f:
79
+ for src in SOURCES_LIST:
80
+ f.write(f"{src}\n")
81
+ results = YOLO(MODEL)(source=file, imgsz=32)
82
+ assert len(results) == 7 # 1 + 2 + 2 + 2 = 7 images
83
+
84
+
85
+ @pytest.mark.skipif(True, reason="disabled for testing")
86
+ @pytest.mark.skipif(not IS_TMP_WRITEABLE, reason="directory is not writeable")
87
+ def test_predict_csv_multi_row():
88
+ """Tests YOLO predictions with sources listed in multiple rows of a CSV file."""
89
+ file = TMP / "sources_multi_row.csv"
90
+ with open(file, "w", newline="") as f:
91
+ writer = csv.writer(f)
92
+ writer.writerow(["source"])
93
+ writer.writerows([[src] for src in SOURCES_LIST])
94
+ results = YOLO(MODEL)(source=file, imgsz=32)
95
+ assert len(results) == 7 # 1 + 2 + 2 + 2 = 7 images
96
+
97
+
98
+ @pytest.mark.skipif(True, reason="disabled for testing")
99
+ @pytest.mark.skipif(not IS_TMP_WRITEABLE, reason="directory is not writeable")
100
+ def test_predict_csv_single_row():
101
+ """Tests YOLO predictions with sources listed in a single row of a CSV file."""
102
+ file = TMP / "sources_single_row.csv"
103
+ with open(file, "w", newline="") as f:
104
+ writer = csv.writer(f)
105
+ writer.writerow(SOURCES_LIST)
106
+ results = YOLO(MODEL)(source=file, imgsz=32)
107
+ assert len(results) == 7 # 1 + 2 + 2 + 2 = 7 images
78
108
 
79
109
 
80
110
  @pytest.mark.parametrize("model_name", MODELS)
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.2.94"
3
+ __version__ = "8.2.95"
4
4
 
5
5
 
6
6
  import os
@@ -668,13 +668,14 @@ class BaseTrainer:
668
668
 
669
669
  def final_eval(self):
670
670
  """Performs final evaluation and validation for object detection YOLO model."""
671
+ ckpt = {}
671
672
  for f in self.last, self.best:
672
673
  if f.exists():
673
- strip_optimizer(f) # strip optimizers
674
- if f is self.best:
675
- if self.last.is_file(): # update best.pt train_metrics from last.pt
676
- k = "train_results"
677
- torch.save({**torch.load(self.best), **{k: torch.load(self.last)[k]}}, self.best)
674
+ if f is self.last:
675
+ ckpt = strip_optimizer(f)
676
+ elif f is self.best:
677
+ k = "train_results" # update best.pt train_metrics from last.pt
678
+ strip_optimizer(f, updates={k: ckpt[k]} if k in ckpt else None)
678
679
  LOGGER.info(f"\nValidating {f}...")
679
680
  self.validator.args.plots = self.args.plots
680
681
  self.metrics = self.validator(model=f)
@@ -759,6 +759,10 @@ class SafeClass:
759
759
  """Initialize SafeClass instance, ignoring all arguments."""
760
760
  pass
761
761
 
762
+ def __call__(self, *args, **kwargs):
763
+ """Run SafeClass instance, ignoring all arguments."""
764
+ pass
765
+
762
766
 
763
767
  class SafeUnpickler(pickle.Unpickler):
764
768
  """Custom Unpickler that replaces unknown classes with SafeClass."""
@@ -533,16 +533,17 @@ class ModelEMA:
533
533
  copy_attr(self.ema, model, include, exclude)
534
534
 
535
535
 
536
- def strip_optimizer(f: Union[str, Path] = "best.pt", s: str = "") -> None:
536
+ def strip_optimizer(f: Union[str, Path] = "best.pt", s: str = "", updates: dict = None) -> dict:
537
537
  """
538
538
  Strip optimizer from 'f' to finalize training, optionally save as 's'.
539
539
 
540
540
  Args:
541
541
  f (str): file path to model to strip the optimizer from. Default is 'best.pt'.
542
542
  s (str): file path to save the model with stripped optimizer to. If not provided, 'f' will be overwritten.
543
+ updates (dict): a dictionary of updates to overlay onto the checkpoint before saving.
543
544
 
544
545
  Returns:
545
- None
546
+ (dict): The combined checkpoint dictionary.
546
547
 
547
548
  Example:
548
549
  ```python
@@ -562,9 +563,9 @@ def strip_optimizer(f: Union[str, Path] = "best.pt", s: str = "") -> None:
562
563
  assert "model" in x, "'model' missing from checkpoint"
563
564
  except Exception as e:
564
565
  LOGGER.warning(f"WARNING ⚠️ Skipping {f}, not a valid Ultralytics model: {e}")
565
- return
566
+ return {}
566
567
 
567
- updates = {
568
+ metadata = {
568
569
  "date": datetime.now().isoformat(),
569
570
  "version": __version__,
570
571
  "license": "AGPL-3.0 License (https://ultralytics.com/license)",
@@ -591,9 +592,11 @@ def strip_optimizer(f: Union[str, Path] = "best.pt", s: str = "") -> None:
591
592
  # x['model'].args = x['train_args']
592
593
 
593
594
  # Save
594
- torch.save({**updates, **x}, s or f, use_dill=False) # combine dicts (prefer to the right)
595
+ combined = {**metadata, **x, **(updates or {})}
596
+ torch.save(combined, s or f, use_dill=False) # combine dicts (prefer to the right)
595
597
  mb = os.path.getsize(s or f) / 1e6 # file size
596
598
  LOGGER.info(f"Optimizer stripped from {f},{f' saved as {s},' if s else ''} {mb:.1f}MB")
599
+ return combined
597
600
 
598
601
 
599
602
  def convert_optimizer_state_dict_to_fp16(state_dict):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.2.94
3
+ Version: 8.2.95
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
@@ -172,14 +172,25 @@ YOLOv8 may also be used directly in a Python environment, and accepts the same [
172
172
  from ultralytics import YOLO
173
173
 
174
174
  # Load a model
175
- model = YOLO("yolov8n.yaml") # build a new model from scratch
176
- model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
177
-
178
- # Use the model
179
- model.train(data="coco8.yaml", epochs=3) # train the model
180
- metrics = model.val() # evaluate model performance on the validation set
181
- results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
182
- path = model.export(format="onnx") # export the model to ONNX format
175
+ model = YOLO("yolov8n.pt")
176
+
177
+ # Train the model
178
+ train_results = model.train(
179
+ data="coco8.yaml", # path to dataset YAML
180
+ epochs=100, # number of training epochs
181
+ imgsz=640, # training image size
182
+ device="cpu", # device to run on, i.e. device=0 or device=0,1,2,3 or device=cpu
183
+ )
184
+
185
+ # Evaluate model performance on the validation set
186
+ metrics = model.val()
187
+
188
+ # Perform object detection on an image
189
+ results = model("path/to/image.jpg")
190
+ results[0].show()
191
+
192
+ # Export the model to ONNX format
193
+ path = model.export(format="onnx") # return path to exported model
183
194
  ```
184
195
 
185
196
  See YOLOv8 [Python Docs](https://docs.ultralytics.com/usage/python/) for more examples.
@@ -224,23 +235,6 @@ See [Detection Docs](https://docs.ultralytics.com/tasks/detect/) for usage examp
224
235
 
225
236
  </details>
226
237
 
227
- <details><summary>Detection (Open Image V7)</summary>
228
-
229
- See [Detection Docs](https://docs.ultralytics.com/tasks/detect/) for usage examples with these models trained on [Open Image V7](https://docs.ultralytics.com/datasets/detect/open-images-v7/), which include 600 pre-trained classes.
230
-
231
- | Model | size<br><sup>(pixels) | mAP<sup>val<br>50-95 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>A100 TensorRT<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
232
- | ----------------------------------------------------------------------------------------- | --------------------- | -------------------- | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
233
- | [YOLOv8n](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-oiv7.pt) | 640 | 18.4 | 142.4 | 1.21 | 3.5 | 10.5 |
234
- | [YOLOv8s](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s-oiv7.pt) | 640 | 27.7 | 183.1 | 1.40 | 11.4 | 29.7 |
235
- | [YOLOv8m](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m-oiv7.pt) | 640 | 33.6 | 408.5 | 2.26 | 26.2 | 80.6 |
236
- | [YOLOv8l](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l-oiv7.pt) | 640 | 34.9 | 596.9 | 2.43 | 44.1 | 167.4 |
237
- | [YOLOv8x](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x-oiv7.pt) | 640 | 36.3 | 860.6 | 3.56 | 68.7 | 260.6 |
238
-
239
- - **mAP<sup>val</sup>** values are for single-model single-scale on [Open Image V7](https://docs.ultralytics.com/datasets/detect/open-images-v7/) dataset. <br>Reproduce by `yolo val detect data=open-images-v7.yaml device=0`
240
- - **Speed** averaged over Open Image V7 val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. <br>Reproduce by `yolo val detect data=open-images-v7.yaml batch=1 device=0|cpu`
241
-
242
- </details>
243
-
244
238
  <details><summary>Segmentation (COCO)</summary>
245
239
 
246
240
  See [Segmentation Docs](https://docs.ultralytics.com/tasks/segment/) for usage examples with these models trained on [COCO-Seg](https://docs.ultralytics.com/datasets/segment/coco/), which include 80 pre-trained classes.
File without changes
File without changes