ultralytics 8.3.120__py3-none-any.whl → 8.3.121__py3-none-any.whl
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.
- ultralytics/__init__.py +1 -1
- ultralytics/data/augment.py +3 -1
- ultralytics/engine/exporter.py +2 -0
- ultralytics/models/utils/loss.py +1 -1
- ultralytics/utils/downloads.py +2 -1
- ultralytics/utils/export.py +1 -1
- ultralytics/utils/loss.py +4 -3
- {ultralytics-8.3.120.dist-info → ultralytics-8.3.121.dist-info}/METADATA +1 -1
- {ultralytics-8.3.120.dist-info → ultralytics-8.3.121.dist-info}/RECORD +13 -13
- {ultralytics-8.3.120.dist-info → ultralytics-8.3.121.dist-info}/WHEEL +0 -0
- {ultralytics-8.3.120.dist-info → ultralytics-8.3.121.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.3.120.dist-info → ultralytics-8.3.121.dist-info}/licenses/LICENSE +0 -0
- {ultralytics-8.3.120.dist-info → ultralytics-8.3.121.dist-info}/top_level.txt +0 -0
ultralytics/__init__.py
CHANGED
ultralytics/data/augment.py
CHANGED
@@ -1026,7 +1026,9 @@ class CutMix(BaseMixTransform):
|
|
1026
1026
|
labels2 = labels.pop("mix_labels")[0]
|
1027
1027
|
area = cut_areas[np.random.choice(idx)] # randomle select one
|
1028
1028
|
ioa2 = bbox_ioa(area[None], labels2["instances"].bboxes).squeeze(0)
|
1029
|
-
indexes2 = np.nonzero(ioa2 >= 0.01 if len(labels["instances"].segments) else 0.1)[0]
|
1029
|
+
indexes2 = np.nonzero(ioa2 >= (0.01 if len(labels["instances"].segments) else 0.1))[0]
|
1030
|
+
if len(indexes2) == 0:
|
1031
|
+
return labels
|
1030
1032
|
|
1031
1033
|
instances2 = labels2["instances"][indexes2]
|
1032
1034
|
instances2.convert_bbox("xyxy")
|
ultralytics/engine/exporter.py
CHANGED
@@ -636,6 +636,8 @@ class Exporter:
|
|
636
636
|
if self.args.int8:
|
637
637
|
fq = str(self.file).replace(self.file.suffix, f"_int8_openvino_model{os.sep}")
|
638
638
|
fq_ov = str(Path(fq) / self.file.with_suffix(".xml").name)
|
639
|
+
# INT8 requires nncf, nncf requires packaging>=23.2 https://github.com/openvinotoolkit/nncf/issues/3463
|
640
|
+
check_requirements("packaging>=23.2") # must be installed first to build nncf wheel
|
639
641
|
check_requirements("nncf>=2.14.0")
|
640
642
|
import nncf
|
641
643
|
|
ultralytics/models/utils/loss.py
CHANGED
@@ -58,7 +58,7 @@ class DETRLoss(nn.Module):
|
|
58
58
|
use_uni_match (bool): Whether to use fixed layer for auxiliary branch label assignment.
|
59
59
|
uni_match_ind (int): Index of fixed layer for uni_match.
|
60
60
|
gamma (float): The focusing parameter that controls how much the loss focuses on hard-to-classify examples.
|
61
|
-
alpha (float): The balancing factor used to address class imbalance.
|
61
|
+
alpha (float | list): The balancing factor used to address class imbalance.
|
62
62
|
"""
|
63
63
|
super().__init__()
|
64
64
|
|
ultralytics/utils/downloads.py
CHANGED
@@ -320,9 +320,10 @@ def safe_download(
|
|
320
320
|
LOGGER.info(f"{desc}...")
|
321
321
|
f.parent.mkdir(parents=True, exist_ok=True) # make directory if missing
|
322
322
|
check_disk_space(url, path=f.parent)
|
323
|
+
curl_installed = shutil.which("curl")
|
323
324
|
for i in range(retry + 1):
|
324
325
|
try:
|
325
|
-
if curl or i > 0: # curl download with retry, continue
|
326
|
+
if (curl or i > 0) and curl_installed: # curl download with retry, continue
|
326
327
|
s = "sS" * (not progress) # silent
|
327
328
|
r = subprocess.run(["curl", "-#", f"-{s}L", url, "-o", f, "--retry", "3", "-C", "-"]).returncode
|
328
329
|
assert r == 0, f"Curl return value {r}"
|
ultralytics/utils/export.py
CHANGED
@@ -167,7 +167,7 @@ def export_engine(
|
|
167
167
|
trt.IInt8Calibrator.__init__(self)
|
168
168
|
self.dataset = dataset
|
169
169
|
self.data_iter = iter(dataset)
|
170
|
-
self.algo = trt.CalibrationAlgoType.
|
170
|
+
self.algo = trt.CalibrationAlgoType.MINMAX_CALIBRATION
|
171
171
|
self.batch = dataset.batch_size
|
172
172
|
self.cache = Path(cache)
|
173
173
|
|
ultralytics/utils/loss.py
CHANGED
@@ -48,14 +48,14 @@ class FocalLoss(nn.Module):
|
|
48
48
|
|
49
49
|
Args:
|
50
50
|
gamma (float): The focusing parameter that controls how much the loss focuses on hard-to-classify examples.
|
51
|
-
alpha (float): The balancing factor used to address class imbalance.
|
51
|
+
alpha (float | list): The balancing factor used to address class imbalance.
|
52
52
|
"""
|
53
53
|
|
54
54
|
def __init__(self, gamma=1.5, alpha=0.25):
|
55
55
|
"""Initialize FocalLoss class with no parameters."""
|
56
56
|
super().__init__()
|
57
57
|
self.gamma = gamma
|
58
|
-
self.alpha = alpha
|
58
|
+
self.alpha = torch.tensor(alpha)
|
59
59
|
|
60
60
|
def forward(self, pred, label):
|
61
61
|
"""Calculate focal loss with modulating factors for class imbalance."""
|
@@ -68,7 +68,8 @@ class FocalLoss(nn.Module):
|
|
68
68
|
p_t = label * pred_prob + (1 - label) * (1 - pred_prob)
|
69
69
|
modulating_factor = (1.0 - p_t) ** self.gamma
|
70
70
|
loss *= modulating_factor
|
71
|
-
if self.alpha > 0:
|
71
|
+
if (self.alpha > 0).any():
|
72
|
+
self.alpha = self.alpha.to(device=pred.device, dtype=pred.dtype)
|
72
73
|
alpha_factor = label * self.alpha + (1 - label) * (1 - self.alpha)
|
73
74
|
loss *= alpha_factor
|
74
75
|
return loss.mean(1).sum()
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ultralytics
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.121
|
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>
|
@@ -7,7 +7,7 @@ tests/test_exports.py,sha256=dhZn86LdbapW15RthQF870LGxDjC1MUZhlGdBgPmgIQ,9716
|
|
7
7
|
tests/test_integrations.py,sha256=dQteeRsRVuT_p5-T88-7jqT65Zm9iAXkyKg-KQ1_TQ8,6341
|
8
8
|
tests/test_python.py,sha256=ok2xp7zwPOwcyl4yNawlx1uJ5HETn9eU-jyTPYzA0fI,25491
|
9
9
|
tests/test_solutions.py,sha256=BIvg9zW0a_ggEmrPKgB_Y0MncveH-eYuN5KlqdJ6nHs,5726
|
10
|
-
ultralytics/__init__.py,sha256=
|
10
|
+
ultralytics/__init__.py,sha256=tdUy7WK4jFpbt6Ko5j53cSpPiqBik5Tnt-Eri9brcMk,730
|
11
11
|
ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
|
12
12
|
ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
|
13
13
|
ultralytics/cfg/__init__.py,sha256=eZ7exHSsrTLY72atmmHKatJgJYLjfZDPXMWVmpZF9Qw,39683
|
@@ -104,7 +104,7 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=8fM3y4TXKKT_5aWsqmQw5JEgwNlBGlRaf8L
|
|
104
104
|
ultralytics/cfg/trackers/bytetrack.yaml,sha256=6u-tiZlk16EqEwkNXaMrza6PAQmWj_ypgv26LGCtPDg,886
|
105
105
|
ultralytics/data/__init__.py,sha256=nAXaL1puCc7z_NjzQNlJnhbVhT9Fla2u7Dsqo7q1dAc,644
|
106
106
|
ultralytics/data/annotator.py,sha256=VEwb11FsEZm75qlEp8XDHFGKW0_rGsEaFDaBVd771Kw,2902
|
107
|
-
ultralytics/data/augment.py,sha256=
|
107
|
+
ultralytics/data/augment.py,sha256=hAnd6yvlauJYk0Ek3_rTPc0RC8sTUfTk_GogMeH61MA,129231
|
108
108
|
ultralytics/data/base.py,sha256=uMh_xzs6ci1hciDLpbVW2ZQr7js0o8jctE8KhL2T7Z4,19015
|
109
109
|
ultralytics/data/build.py,sha256=FVIkgLGv5n1C7SRDrQiKOMDcI7V59WmEihKslzvEISg,9651
|
110
110
|
ultralytics/data/converter.py,sha256=znXH2XTdo0Q4NDHMny1ydVBvrxKn2kbbwI-X5bn1MlQ,26890
|
@@ -118,7 +118,7 @@ ultralytics/data/scripts/get_coco.sh,sha256=UuJpJeo3qQpTHVINeOpmP0NYmg8PhEFE3A8J
|
|
118
118
|
ultralytics/data/scripts/get_coco128.sh,sha256=qmRQl_hOKrsdHrTrnyQuFIH01oDz3lfaz138OgGfLt8,650
|
119
119
|
ultralytics/data/scripts/get_imagenet.sh,sha256=hr42H16bM47iT27rgS7MpEo-GeOZAYUQXgr0B2cwn48,1705
|
120
120
|
ultralytics/engine/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
|
121
|
-
ultralytics/engine/exporter.py,sha256=
|
121
|
+
ultralytics/engine/exporter.py,sha256=ulSbSps_TVi6LI4HrNpqloCRFTN6bNcJgc0O7FjyF0k,69984
|
122
122
|
ultralytics/engine/model.py,sha256=wS1cwgv0iyhsslMAZYMGlYDWitDIRW96d7MxwW-Sw5o,52817
|
123
123
|
ultralytics/engine/predictor.py,sha256=YJ5l-0qIpr6JAJxowswtZ0IqmXBqVTvAA9vR40v0sCM,21752
|
124
124
|
ultralytics/engine/results.py,sha256=MZkhI0CCOkBQPR-EzswymVqvqeyk35EkESGUQ_08r8k,79738
|
@@ -160,7 +160,7 @@ ultralytics/models/sam/modules/tiny_encoder.py,sha256=p6386bsmIwgZq1wfV7h6dcnI69
|
|
160
160
|
ultralytics/models/sam/modules/transformer.py,sha256=YRhoriZ-j37kxq19kArfv2DSOz2Jj9DAbs2mcOBVORw,14674
|
161
161
|
ultralytics/models/sam/modules/utils.py,sha256=3PatFjbgO1uasMZXXLJw23CrjuYTW7BS9NM4aXom-zY,16294
|
162
162
|
ultralytics/models/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
|
163
|
-
ultralytics/models/utils/loss.py,sha256=
|
163
|
+
ultralytics/models/utils/loss.py,sha256=FShJFvzFBk0HRepRhiSVNz9J-Cq08FxkSNXhLppycI0,19993
|
164
164
|
ultralytics/models/utils/ops.py,sha256=SuBnwwgUTqByNHpufobGLW72yO2cyfZFi14KAFWSjjw,13613
|
165
165
|
ultralytics/models/yolo/__init__.py,sha256=or0j5xvcM0usMlsFTYhNAOcQUri7reD0cD9JR5b7zDk,307
|
166
166
|
ultralytics/models/yolo/model.py,sha256=8TbfllTKxvNzr4MlMAFfTV8s-144AUSNUyO_7Ps6aKA,14277
|
@@ -235,12 +235,12 @@ ultralytics/utils/autobatch.py,sha256=VZTIKLWeFZFwBHJmbiCn3MaxoFp89hLR0DSCR_iLXJ
|
|
235
235
|
ultralytics/utils/benchmarks.py,sha256=aZse9tetEwjMy2GkdNWZ0WfCgjLfCM3_BkI1qNNQb_w,30377
|
236
236
|
ultralytics/utils/checks.py,sha256=5bkna--ZH4FJDZtgef_K4xgjiKOZqCarTqIE4Z0vwJU,32628
|
237
237
|
ultralytics/utils/dist.py,sha256=e-DK_YowV7D9rDGQyWR9Kaosxp2eWe2EogSWnnUMthc,4098
|
238
|
-
ultralytics/utils/downloads.py,sha256=
|
238
|
+
ultralytics/utils/downloads.py,sha256=IvHng2-bApoyi-QMvesGwMmFNqEFiXPIKiiW16Q-U4M,22220
|
239
239
|
ultralytics/utils/errors.py,sha256=vY9h2evFSrHnZdHJVVrmm8Zzw4qVDLyo9DeYW5g0dFk,1573
|
240
|
-
ultralytics/utils/export.py,sha256=
|
240
|
+
ultralytics/utils/export.py,sha256=1MgT6rSuofvLRR-J01EQvfHylzyO_b5BDM13imypQzA,8814
|
241
241
|
ultralytics/utils/files.py,sha256=0K4O1cgqRiXaDw7EQK13TqA5SME_RrvfDVQSPetNr5w,8042
|
242
242
|
ultralytics/utils/instance.py,sha256=UOEsXR9V-bXNRk6BTonASBEgeMqvzzAk4S7VdXZJUAM,18090
|
243
|
-
ultralytics/utils/loss.py,sha256=
|
243
|
+
ultralytics/utils/loss.py,sha256=zIDWS_0AOH-yEYLcsfmFRUkApPIZhu2ENsB0UwJYIuw,37607
|
244
244
|
ultralytics/utils/metrics.py,sha256=uv5O-2Ft8wYfTvDedFxiUqMZ6Nr2CL6I9ybGZiK3e2s,53773
|
245
245
|
ultralytics/utils/ops.py,sha256=YFwPrKlPcgEmgAWqnJVR0Ccx5NQgp5e3P-YYHwVSP0k,34779
|
246
246
|
ultralytics/utils/patches.py,sha256=6rVT-l8WDp_Py3O-gZdv9t3PnrYRRkrX_lF3mZ1XS8c,4928
|
@@ -260,9 +260,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=JaI95Cj2kIjUhlEEOiDN0-Drc-fDelLhNI
|
|
260
260
|
ultralytics/utils/callbacks/raytune.py,sha256=A8amUGpux7dYES-L1iSeMoMXBySGWCD1aUqT7vcG-pU,1284
|
261
261
|
ultralytics/utils/callbacks/tensorboard.py,sha256=jgYnym3cUQFAgN1GzTyO7l3jINtfAh8zhrllDvnLuVQ,5339
|
262
262
|
ultralytics/utils/callbacks/wb.py,sha256=iDRFXI4IIDm8R5OI89DMTmjs8aHLo1HRCLkOFKdaMG4,7507
|
263
|
-
ultralytics-8.3.
|
264
|
-
ultralytics-8.3.
|
265
|
-
ultralytics-8.3.
|
266
|
-
ultralytics-8.3.
|
267
|
-
ultralytics-8.3.
|
268
|
-
ultralytics-8.3.
|
263
|
+
ultralytics-8.3.121.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
264
|
+
ultralytics-8.3.121.dist-info/METADATA,sha256=0kXipogR0rrObzgEybM38xylBTR9U7g4IxA6cjqpqVs,37195
|
265
|
+
ultralytics-8.3.121.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
|
266
|
+
ultralytics-8.3.121.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
|
267
|
+
ultralytics-8.3.121.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
|
268
|
+
ultralytics-8.3.121.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|