ultralytics 8.2.34__py3-none-any.whl → 8.2.36__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.
Potentially problematic release.
This version of ultralytics might be problematic. Click here for more details.
- tests/test_cuda.py +1 -0
- ultralytics/__init__.py +1 -1
- ultralytics/cfg/datasets/lvis.yaml +4 -8
- ultralytics/cfg/models/v9/yolov9c-seg.yaml +3 -3
- ultralytics/cfg/models/v9/yolov9c.yaml +3 -3
- ultralytics/cfg/models/v9/yolov9e-seg.yaml +5 -5
- ultralytics/cfg/models/v9/yolov9e.yaml +5 -5
- ultralytics/cfg/models/v9/yolov9m.yaml +38 -0
- ultralytics/cfg/models/v9/yolov9s.yaml +38 -0
- ultralytics/cfg/models/v9/yolov9t.yaml +38 -0
- ultralytics/data/explorer/gui/dash.py +1 -1
- ultralytics/nn/modules/__init__.py +4 -2
- ultralytics/nn/modules/block.py +29 -0
- ultralytics/nn/tasks.py +16 -3
- ultralytics/utils/callbacks/mlflow.py +8 -4
- ultralytics/utils/plotting.py +47 -20
- {ultralytics-8.2.34.dist-info → ultralytics-8.2.36.dist-info}/METADATA +7 -7
- {ultralytics-8.2.34.dist-info → ultralytics-8.2.36.dist-info}/RECORD +22 -19
- {ultralytics-8.2.34.dist-info → ultralytics-8.2.36.dist-info}/WHEEL +1 -1
- {ultralytics-8.2.34.dist-info → ultralytics-8.2.36.dist-info}/LICENSE +0 -0
- {ultralytics-8.2.34.dist-info → ultralytics-8.2.36.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.2.34.dist-info → ultralytics-8.2.36.dist-info}/top_level.txt +0 -0
tests/test_cuda.py
CHANGED
|
@@ -19,6 +19,7 @@ def test_checks():
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@pytest.mark.slow
|
|
22
|
+
@pytest.mark.skipif(True, reason="CUDA export tests disabled pending additional Ultralytics GPU server availability")
|
|
22
23
|
@pytest.mark.skipif(not CUDA_IS_AVAILABLE, reason="CUDA is not available")
|
|
23
24
|
@pytest.mark.parametrize(
|
|
24
25
|
"task, dynamic, int8, half, batch",
|
ultralytics/__init__.py
CHANGED
|
@@ -221,8 +221,7 @@ names:
|
|
|
221
221
|
204: cape
|
|
222
222
|
205: cappuccino/coffee cappuccino
|
|
223
223
|
206: car/car automobile/auto/auto automobile/automobile
|
|
224
|
-
207: railcar/railcar part of a train/railway car/railway car part of a train/railroad
|
|
225
|
-
car/railroad car part of a train
|
|
224
|
+
207: railcar/railcar part of a train/railway car/railway car part of a train/railroad car/railroad car part of a train
|
|
226
225
|
208: elevator car
|
|
227
226
|
209: car battery/automobile battery
|
|
228
227
|
210: identity card
|
|
@@ -241,8 +240,7 @@ names:
|
|
|
241
240
|
223: cast/plaster cast/plaster bandage
|
|
242
241
|
224: cat
|
|
243
242
|
225: cauliflower
|
|
244
|
-
226: cayenne/cayenne spice/cayenne pepper/cayenne pepper spice/red pepper/red pepper
|
|
245
|
-
spice
|
|
243
|
+
226: cayenne/cayenne spice/cayenne pepper/cayenne pepper spice/red pepper/red pepper spice
|
|
246
244
|
227: CD player
|
|
247
245
|
228: celery
|
|
248
246
|
229: cellular telephone/cellular phone/cellphone/mobile phone/smart phone
|
|
@@ -258,8 +256,7 @@ names:
|
|
|
258
256
|
239: chessboard
|
|
259
257
|
240: chicken/chicken animal
|
|
260
258
|
241: chickpea/garbanzo
|
|
261
|
-
242: chili/chili vegetable/chili pepper/chili pepper vegetable/chilli/chilli vegetable/chilly/chilly
|
|
262
|
-
vegetable/chile/chile vegetable
|
|
259
|
+
242: chili/chili vegetable/chili pepper/chili pepper vegetable/chilli/chilli vegetable/chilly/chilly vegetable/chile/chile vegetable
|
|
263
260
|
243: chime/gong
|
|
264
261
|
244: chinaware
|
|
265
262
|
245: crisp/crisp potato chip/potato chip
|
|
@@ -1061,8 +1058,7 @@ names:
|
|
|
1061
1058
|
1041: sweater
|
|
1062
1059
|
1042: sweatshirt
|
|
1063
1060
|
1043: sweet potato
|
|
1064
|
-
1044: swimsuit/swimwear/bathing suit/swimming costume/bathing costume/swimming trunks/bathing
|
|
1065
|
-
trunks
|
|
1061
|
+
1044: swimsuit/swimwear/bathing suit/swimming costume/bathing costume/swimming trunks/bathing trunks
|
|
1066
1062
|
1045: sword
|
|
1067
1063
|
1046: syringe
|
|
1068
1064
|
1047: Tabasco sauce
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
2
|
-
# YOLOv9c-seg
|
|
2
|
+
# YOLOv9c-seg instance segmentation model. For Usage examples see https://docs.ultralytics.com/models/yolov9
|
|
3
3
|
# 654 layers, 27897120 parameters, 159.4 GFLOPs
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# Parameters
|
|
6
6
|
nc: 80 # number of classes
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# GELAN backbone
|
|
9
9
|
backbone:
|
|
10
10
|
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
11
11
|
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
2
|
-
# YOLOv9c
|
|
2
|
+
# YOLOv9c object detection model. For Usage examples see https://docs.ultralytics.com/models/yolov9
|
|
3
3
|
# 618 layers, 25590912 parameters, 104.0 GFLOPs
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# Parameters
|
|
6
6
|
nc: 80 # number of classes
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# GELAN backbone
|
|
9
9
|
backbone:
|
|
10
10
|
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
11
11
|
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
2
|
-
#
|
|
2
|
+
# YOLOv9e-seg instance segmentation model. For Usage examples see https://docs.ultralytics.com/models/yolov9
|
|
3
3
|
# 1261 layers, 60512800 parameters, 248.4 GFLOPs
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# Parameters
|
|
6
6
|
nc: 80 # number of classes
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# GELAN backbone
|
|
9
9
|
backbone:
|
|
10
|
-
- [-1, 1,
|
|
10
|
+
- [-1, 1, nn.Identity, []]
|
|
11
11
|
- [-1, 1, Conv, [64, 3, 2]] # 1-P1/2
|
|
12
12
|
- [-1, 1, Conv, [128, 3, 2]] # 2-P2/4
|
|
13
13
|
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 2]] # 3
|
|
@@ -40,7 +40,7 @@ backbone:
|
|
|
40
40
|
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 28
|
|
41
41
|
- [-1, 1, SPPELAN, [512, 256]] # 29
|
|
42
42
|
|
|
43
|
-
#
|
|
43
|
+
# GELAN head
|
|
44
44
|
head:
|
|
45
45
|
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
46
46
|
- [[-1, 25], 1, Concat, [1]] # cat backbone P4
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
2
|
-
# YOLOv9e
|
|
2
|
+
# YOLOv9e object detection model. For Usage examples see https://docs.ultralytics.com/models/yolov9
|
|
3
3
|
# 1225 layers, 58206592 parameters, 193.0 GFLOPs
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# Parameters
|
|
6
6
|
nc: 80 # number of classes
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# GELAN backbone
|
|
9
9
|
backbone:
|
|
10
|
-
- [-1, 1,
|
|
10
|
+
- [-1, 1, nn.Identity, []]
|
|
11
11
|
- [-1, 1, Conv, [64, 3, 2]] # 1-P1/2
|
|
12
12
|
- [-1, 1, Conv, [128, 3, 2]] # 2-P2/4
|
|
13
13
|
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 2]] # 3
|
|
@@ -40,7 +40,7 @@ backbone:
|
|
|
40
40
|
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 28
|
|
41
41
|
- [-1, 1, SPPELAN, [512, 256]] # 29
|
|
42
42
|
|
|
43
|
-
#
|
|
43
|
+
# GELAN head
|
|
44
44
|
head:
|
|
45
45
|
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
46
46
|
- [[-1, 25], 1, Concat, [1]] # cat backbone P4
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
2
|
+
# YOLOv9m object detection model. For Usage examples see https://docs.ultralytics.com/models/yolov9
|
|
3
|
+
# 603 layers, 20216160 parameters, 77.9 GFLOPs
|
|
4
|
+
|
|
5
|
+
# Parameters
|
|
6
|
+
nc: 80 # number of classes
|
|
7
|
+
|
|
8
|
+
# GELAN backbone
|
|
9
|
+
backbone:
|
|
10
|
+
- [-1, 1, Conv, [32, 3, 2]] # 0-P1/2
|
|
11
|
+
- [-1, 1, Conv, [64, 3, 2]] # 1-P2/4
|
|
12
|
+
- [-1, 1, RepNCSPELAN4, [128, 128, 64, 1]] # 2
|
|
13
|
+
- [-1, 1, AConv, [240]] # 3-P3/8
|
|
14
|
+
- [-1, 1, RepNCSPELAN4, [240, 240, 120, 1]] # 4
|
|
15
|
+
- [-1, 1, AConv, [360]] # 5-P4/16
|
|
16
|
+
- [-1, 1, RepNCSPELAN4, [360, 360, 180, 1]] # 6
|
|
17
|
+
- [-1, 1, AConv, [480]] # 7-P5/32
|
|
18
|
+
- [-1, 1, RepNCSPELAN4, [480, 480, 240, 1]] # 8
|
|
19
|
+
- [-1, 1, SPPELAN, [480, 240]] # 9
|
|
20
|
+
|
|
21
|
+
head:
|
|
22
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
23
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
24
|
+
- [-1, 1, RepNCSPELAN4, [360, 360, 180, 1]] # 12
|
|
25
|
+
|
|
26
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
27
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
28
|
+
- [-1, 1, RepNCSPELAN4, [240, 240, 120, 1]] # 15
|
|
29
|
+
|
|
30
|
+
- [-1, 1, AConv, [180]]
|
|
31
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
32
|
+
- [-1, 1, RepNCSPELAN4, [360, 360, 180, 1]] # 18 (P4/16-medium)
|
|
33
|
+
|
|
34
|
+
- [-1, 1, AConv, [240]]
|
|
35
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
36
|
+
- [-1, 1, RepNCSPELAN4, [480, 480, 240, 1]] # 21 (P5/32-large)
|
|
37
|
+
|
|
38
|
+
- [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
2
|
+
# YOLOv9s object detection model. For Usage examples see https://docs.ultralytics.com/models/yolov9
|
|
3
|
+
# 917 layers, 7318368 parameters, 27.6 GFLOPs
|
|
4
|
+
|
|
5
|
+
# Parameters
|
|
6
|
+
nc: 80 # number of classes
|
|
7
|
+
|
|
8
|
+
# GELAN backbone
|
|
9
|
+
backbone:
|
|
10
|
+
- [-1, 1, Conv, [32, 3, 2]] # 0-P1/2
|
|
11
|
+
- [-1, 1, Conv, [64, 3, 2]] # 1-P2/4
|
|
12
|
+
- [-1, 1, ELAN1, [64, 64, 32]] # 2
|
|
13
|
+
- [-1, 1, AConv, [128]] # 3-P3/8
|
|
14
|
+
- [-1, 1, RepNCSPELAN4, [128, 128, 64, 3]] # 4
|
|
15
|
+
- [-1, 1, AConv, [192]] # 5-P4/16
|
|
16
|
+
- [-1, 1, RepNCSPELAN4, [192, 192, 96, 3]] # 6
|
|
17
|
+
- [-1, 1, AConv, [256]] # 7-P5/32
|
|
18
|
+
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 3]] # 8
|
|
19
|
+
- [-1, 1, SPPELAN, [256, 128]] # 9
|
|
20
|
+
|
|
21
|
+
head:
|
|
22
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
23
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
24
|
+
- [-1, 1, RepNCSPELAN4, [192, 192, 96, 3]] # 12
|
|
25
|
+
|
|
26
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
27
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
28
|
+
- [-1, 1, RepNCSPELAN4, [128, 128, 64, 3]] # 15
|
|
29
|
+
|
|
30
|
+
- [-1, 1, AConv, [96]]
|
|
31
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
32
|
+
- [-1, 1, RepNCSPELAN4, [192, 192, 96, 3]] # 18 (P4/16-medium)
|
|
33
|
+
|
|
34
|
+
- [-1, 1, AConv, [128]]
|
|
35
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
36
|
+
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 3]] # 21 (P5/32-large)
|
|
37
|
+
|
|
38
|
+
- [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4 P5)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
2
|
+
# YOLOv9t object detection model. For Usage examples see https://docs.ultralytics.com/models/yolov9
|
|
3
|
+
# 917 layers, 2128720 parameters, 8.5 GFLOPs
|
|
4
|
+
|
|
5
|
+
# Parameters
|
|
6
|
+
nc: 80 # number of classes
|
|
7
|
+
|
|
8
|
+
# GELAN backbone
|
|
9
|
+
backbone:
|
|
10
|
+
- [-1, 1, Conv, [16, 3, 2]] # 0-P1/2
|
|
11
|
+
- [-1, 1, Conv, [32, 3, 2]] # 1-P2/4
|
|
12
|
+
- [-1, 1, ELAN1, [32, 32, 16]] # 2
|
|
13
|
+
- [-1, 1, AConv, [64]] # 3-P3/8
|
|
14
|
+
- [-1, 1, RepNCSPELAN4, [64, 64, 32, 3]] # 4
|
|
15
|
+
- [-1, 1, AConv, [96]] # 5-P4/16
|
|
16
|
+
- [-1, 1, RepNCSPELAN4, [96, 96, 48, 3]] # 6
|
|
17
|
+
- [-1, 1, AConv, [128]] # 7-P5/32
|
|
18
|
+
- [-1, 1, RepNCSPELAN4, [128, 128, 64, 3]] # 8
|
|
19
|
+
- [-1, 1, SPPELAN, [128, 64]] # 9
|
|
20
|
+
|
|
21
|
+
head:
|
|
22
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
23
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
24
|
+
- [-1, 1, RepNCSPELAN4, [96, 96, 48, 3]] # 12
|
|
25
|
+
|
|
26
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
27
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
28
|
+
- [-1, 1, RepNCSPELAN4, [64, 64, 32, 3]] # 15
|
|
29
|
+
|
|
30
|
+
- [-1, 1, AConv, [48]]
|
|
31
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
32
|
+
- [-1, 1, RepNCSPELAN4, [96, 96, 48, 3]] # 18 (P4/16-medium)
|
|
33
|
+
|
|
34
|
+
- [-1, 1, AConv, [64]]
|
|
35
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
36
|
+
- [-1, 1, RepNCSPELAN4, [128, 128, 64, 3]] # 21 (P5/32-large)
|
|
37
|
+
|
|
38
|
+
- [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)
|
|
@@ -259,7 +259,7 @@ def layout():
|
|
|
259
259
|
|
|
260
260
|
with col2:
|
|
261
261
|
similarity_form(selected_imgs)
|
|
262
|
-
|
|
262
|
+
st.checkbox("Labels", value=False, key="display_labels")
|
|
263
263
|
utralytics_explorer_docs_callback()
|
|
264
264
|
|
|
265
265
|
|
|
@@ -23,9 +23,11 @@ from .block import (
|
|
|
23
23
|
C3,
|
|
24
24
|
C3TR,
|
|
25
25
|
DFL,
|
|
26
|
+
ELAN1,
|
|
26
27
|
SPP,
|
|
27
28
|
SPPELAN,
|
|
28
29
|
SPPF,
|
|
30
|
+
AConv,
|
|
29
31
|
ADown,
|
|
30
32
|
BNContrastiveHead,
|
|
31
33
|
Bottleneck,
|
|
@@ -45,7 +47,6 @@ from .block import (
|
|
|
45
47
|
RepC3,
|
|
46
48
|
RepNCSPELAN4,
|
|
47
49
|
ResNetLayer,
|
|
48
|
-
Silence,
|
|
49
50
|
)
|
|
50
51
|
from .conv import (
|
|
51
52
|
CBAM,
|
|
@@ -134,5 +135,6 @@ __all__ = (
|
|
|
134
135
|
"SPPELAN",
|
|
135
136
|
"CBFuse",
|
|
136
137
|
"CBLinear",
|
|
137
|
-
"
|
|
138
|
+
"AConv",
|
|
139
|
+
"ELAN1",
|
|
138
140
|
)
|
ultralytics/nn/modules/block.py
CHANGED
|
@@ -32,7 +32,9 @@ __all__ = (
|
|
|
32
32
|
"RepC3",
|
|
33
33
|
"ResNetLayer",
|
|
34
34
|
"RepNCSPELAN4",
|
|
35
|
+
"ELAN1",
|
|
35
36
|
"ADown",
|
|
37
|
+
"AConv",
|
|
36
38
|
"SPPELAN",
|
|
37
39
|
"CBFuse",
|
|
38
40
|
"CBLinear",
|
|
@@ -603,6 +605,33 @@ class RepNCSPELAN4(nn.Module):
|
|
|
603
605
|
return self.cv4(torch.cat(y, 1))
|
|
604
606
|
|
|
605
607
|
|
|
608
|
+
class ELAN1(RepNCSPELAN4):
|
|
609
|
+
"""ELAN1 module with 4 convolutions."""
|
|
610
|
+
|
|
611
|
+
def __init__(self, c1, c2, c3, c4):
|
|
612
|
+
"""Initializes ELAN1 layer with specified channel sizes."""
|
|
613
|
+
super().__init__(c1, c2, c3, c4)
|
|
614
|
+
self.c = c3 // 2
|
|
615
|
+
self.cv1 = Conv(c1, c3, 1, 1)
|
|
616
|
+
self.cv2 = Conv(c3 // 2, c4, 3, 1)
|
|
617
|
+
self.cv3 = Conv(c4, c4, 3, 1)
|
|
618
|
+
self.cv4 = Conv(c3 + (2 * c4), c2, 1, 1)
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
class AConv(nn.Module):
|
|
622
|
+
"""AConv."""
|
|
623
|
+
|
|
624
|
+
def __init__(self, c1, c2):
|
|
625
|
+
"""Initializes AConv module with convolution layers."""
|
|
626
|
+
super().__init__()
|
|
627
|
+
self.cv1 = Conv(c1, c2, 3, 2, 1)
|
|
628
|
+
|
|
629
|
+
def forward(self, x):
|
|
630
|
+
"""Forward pass through AConv layer."""
|
|
631
|
+
x = torch.nn.functional.avg_pool2d(x, 2, 1, 0, False, True)
|
|
632
|
+
return self.cv1(x)
|
|
633
|
+
|
|
634
|
+
|
|
606
635
|
class ADown(nn.Module):
|
|
607
636
|
"""ADown."""
|
|
608
637
|
|
ultralytics/nn/tasks.py
CHANGED
|
@@ -13,10 +13,12 @@ from ultralytics.nn.modules import (
|
|
|
13
13
|
C2,
|
|
14
14
|
C3,
|
|
15
15
|
C3TR,
|
|
16
|
+
ELAN1,
|
|
16
17
|
OBB,
|
|
17
18
|
SPP,
|
|
18
19
|
SPPELAN,
|
|
19
20
|
SPPF,
|
|
21
|
+
AConv,
|
|
20
22
|
ADown,
|
|
21
23
|
Bottleneck,
|
|
22
24
|
BottleneckCSP,
|
|
@@ -47,7 +49,6 @@ from ultralytics.nn.modules import (
|
|
|
47
49
|
ResNetLayer,
|
|
48
50
|
RTDETRDecoder,
|
|
49
51
|
Segment,
|
|
50
|
-
Silence, # noqa (equivalent to nn.Identity, unused in file but required to load YOLOv9 models)
|
|
51
52
|
WorldDetect,
|
|
52
53
|
)
|
|
53
54
|
from ultralytics.utils import DEFAULT_CFG_DICT, DEFAULT_CFG_KEYS, LOGGER, colorstr, emojis, yaml_load
|
|
@@ -278,6 +279,12 @@ class DetectionModel(BaseModel):
|
|
|
278
279
|
"""Initialize the YOLOv8 detection model with the given config and parameters."""
|
|
279
280
|
super().__init__()
|
|
280
281
|
self.yaml = cfg if isinstance(cfg, dict) else yaml_model_load(cfg) # cfg dict
|
|
282
|
+
if self.yaml["backbone"][0][2] == "Silence":
|
|
283
|
+
LOGGER.warning(
|
|
284
|
+
"WARNING ⚠️ YOLOv9 `Silence` module is deprecated in favor of nn.Identity. "
|
|
285
|
+
"Please delete local *.pt file and re-download the latest model checkpoint."
|
|
286
|
+
)
|
|
287
|
+
self.yaml["backbone"][0][2] = "nn.Identity"
|
|
281
288
|
|
|
282
289
|
# Define model
|
|
283
290
|
ch = self.yaml["ch"] = self.yaml.get("ch", ch) # input channels
|
|
@@ -293,8 +300,12 @@ class DetectionModel(BaseModel):
|
|
|
293
300
|
if isinstance(m, Detect): # includes all Detect subclasses like Segment, Pose, OBB, WorldDetect
|
|
294
301
|
s = 256 # 2x min stride
|
|
295
302
|
m.inplace = self.inplace
|
|
296
|
-
|
|
297
|
-
|
|
303
|
+
|
|
304
|
+
def _forward(x):
|
|
305
|
+
"""Performs a forward pass through the model, handling different Detect subclass types accordingly."""
|
|
306
|
+
return self.forward(x)[0] if isinstance(m, (Segment, Pose, OBB)) else self.forward(x)
|
|
307
|
+
|
|
308
|
+
m.stride = torch.tensor([s / x.shape[-2] for x in _forward(torch.zeros(1, ch, s, s))]) # forward
|
|
298
309
|
self.stride = m.stride
|
|
299
310
|
m.bias_init() # only run once
|
|
300
311
|
else:
|
|
@@ -875,7 +886,9 @@ def parse_model(d, ch, verbose=True): # model_dict, input_channels(3)
|
|
|
875
886
|
C2,
|
|
876
887
|
C2f,
|
|
877
888
|
RepNCSPELAN4,
|
|
889
|
+
ELAN1,
|
|
878
890
|
ADown,
|
|
891
|
+
AConv,
|
|
879
892
|
SPPELAN,
|
|
880
893
|
C2fAttn,
|
|
881
894
|
C3,
|
|
@@ -34,12 +34,16 @@ try:
|
|
|
34
34
|
from pathlib import Path
|
|
35
35
|
|
|
36
36
|
PREFIX = colorstr("MLflow: ")
|
|
37
|
-
SANITIZE = lambda x: {k.replace("(", "").replace(")", ""): float(v) for k, v in x.items()}
|
|
38
37
|
|
|
39
38
|
except (ImportError, AssertionError):
|
|
40
39
|
mlflow = None
|
|
41
40
|
|
|
42
41
|
|
|
42
|
+
def sanitize_dict(x):
|
|
43
|
+
"""Sanitize dictionary keys by removing parentheses and converting values to floats."""
|
|
44
|
+
return {k.replace("(", "").replace(")", ""): float(v) for k, v in x.items()}
|
|
45
|
+
|
|
46
|
+
|
|
43
47
|
def on_pretrain_routine_end(trainer):
|
|
44
48
|
"""
|
|
45
49
|
Log training parameters to MLflow at the end of the pretraining routine.
|
|
@@ -88,8 +92,8 @@ def on_train_epoch_end(trainer):
|
|
|
88
92
|
if mlflow:
|
|
89
93
|
mlflow.log_metrics(
|
|
90
94
|
metrics={
|
|
91
|
-
**
|
|
92
|
-
**
|
|
95
|
+
**sanitize_dict(trainer.lr),
|
|
96
|
+
**sanitize_dict(trainer.label_loss_items(trainer.tloss, prefix="train")),
|
|
93
97
|
},
|
|
94
98
|
step=trainer.epoch,
|
|
95
99
|
)
|
|
@@ -98,7 +102,7 @@ def on_train_epoch_end(trainer):
|
|
|
98
102
|
def on_fit_epoch_end(trainer):
|
|
99
103
|
"""Log training metrics at the end of each fit epoch to MLflow."""
|
|
100
104
|
if mlflow:
|
|
101
|
-
mlflow.log_metrics(metrics=
|
|
105
|
+
mlflow.log_metrics(metrics=sanitize_dict(trainer.metrics), step=trainer.epoch)
|
|
102
106
|
|
|
103
107
|
|
|
104
108
|
def on_train_end(trainer):
|
ultralytics/utils/plotting.py
CHANGED
|
@@ -33,26 +33,26 @@ class Colors:
|
|
|
33
33
|
def __init__(self):
|
|
34
34
|
"""Initialize colors as hex = matplotlib.colors.TABLEAU_COLORS.values()."""
|
|
35
35
|
hexs = (
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
36
|
+
"042AFF",
|
|
37
|
+
"0BDBEB",
|
|
38
|
+
"F3F3F3",
|
|
39
|
+
"00DFB7",
|
|
40
|
+
"111F68",
|
|
41
|
+
"FF6FDD",
|
|
42
|
+
"FF444F",
|
|
43
|
+
"CCED00",
|
|
44
|
+
"00F344",
|
|
45
|
+
"BD00FF",
|
|
46
|
+
"00B4FF",
|
|
47
|
+
"DD00BA",
|
|
48
|
+
"00FFFF",
|
|
49
|
+
"26C000",
|
|
50
|
+
"01FFB3",
|
|
51
|
+
"7D24FF",
|
|
52
|
+
"7B0068",
|
|
53
|
+
"FF1B6C",
|
|
54
|
+
"FC6D2F",
|
|
55
|
+
"A2FF0B",
|
|
56
56
|
)
|
|
57
57
|
self.palette = [self.hex2rgb(f"#{c}") for c in hexs]
|
|
58
58
|
self.n = len(self.palette)
|
|
@@ -158,9 +158,36 @@ class Annotator:
|
|
|
158
158
|
|
|
159
159
|
self.limb_color = colors.pose_palette[[9, 9, 9, 9, 7, 7, 7, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, 16, 16]]
|
|
160
160
|
self.kpt_color = colors.pose_palette[[16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9]]
|
|
161
|
+
self.dark_colors = {
|
|
162
|
+
(235, 219, 11),
|
|
163
|
+
(243, 243, 243),
|
|
164
|
+
(183, 223, 0),
|
|
165
|
+
(221, 111, 255),
|
|
166
|
+
(0, 237, 204),
|
|
167
|
+
(68, 243, 0),
|
|
168
|
+
(255, 255, 0),
|
|
169
|
+
(179, 255, 1),
|
|
170
|
+
(11, 255, 162),
|
|
171
|
+
}
|
|
172
|
+
self.light_colors = {
|
|
173
|
+
(255, 42, 4),
|
|
174
|
+
(79, 68, 255),
|
|
175
|
+
(255, 0, 189),
|
|
176
|
+
(255, 180, 0),
|
|
177
|
+
(186, 0, 221),
|
|
178
|
+
(0, 192, 38),
|
|
179
|
+
(255, 36, 125),
|
|
180
|
+
(104, 0, 123),
|
|
181
|
+
(108, 27, 255),
|
|
182
|
+
(47, 109, 252),
|
|
183
|
+
(104, 31, 17),
|
|
184
|
+
}
|
|
161
185
|
|
|
162
186
|
def box_label(self, box, label="", color=(128, 128, 128), txt_color=(255, 255, 255), rotated=False):
|
|
163
187
|
"""Add one xyxy box to image with label."""
|
|
188
|
+
txt_color = (
|
|
189
|
+
(104, 31, 17) if color in self.dark_colors else (255, 255, 255) if color in self.light_colors else txt_color
|
|
190
|
+
)
|
|
164
191
|
if isinstance(box, torch.Tensor):
|
|
165
192
|
box = box.tolist()
|
|
166
193
|
if self.pil or not is_ascii(label):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.2.
|
|
3
|
+
Version: 8.2.36
|
|
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
|
|
@@ -93,13 +93,13 @@ Requires-Dist: dvclive >=2.12.0 ; extra == 'logging'
|
|
|
93
93
|
<div>
|
|
94
94
|
<a href="https://github.com/ultralytics/ultralytics/actions/workflows/ci.yaml"><img src="https://github.com/ultralytics/ultralytics/actions/workflows/ci.yaml/badge.svg" alt="Ultralytics CI"></a>
|
|
95
95
|
<a href="https://codecov.io/github/ultralytics/ultralytics"><img src="https://codecov.io/github/ultralytics/ultralytics/branch/main/graph/badge.svg?token=HHW7IIVFVY" alt="Ultralytics Code Coverage"></a>
|
|
96
|
-
<a href="https://zenodo.org/badge/latestdoi/264818686"><img src="https://zenodo.org/badge/264818686.svg" alt="YOLOv8 Citation"></a>
|
|
97
|
-
<a href="https://hub.docker.com/r/ultralytics/ultralytics"><img src="https://img.shields.io/docker/pulls/ultralytics/ultralytics?logo=docker" alt="Docker Pulls"></a>
|
|
98
|
-
<a href="https://ultralytics.com/discord"><img alt="Discord" src="https://img.shields.io/discord/1089800235347353640?logo=discord&logoColor=white&label=Discord&color=blue"></a>
|
|
96
|
+
<a href="https://zenodo.org/badge/latestdoi/264818686"><img src="https://zenodo.org/badge/264818686.svg" alt="Ultralytics YOLOv8 Citation"></a>
|
|
97
|
+
<a href="https://hub.docker.com/r/ultralytics/ultralytics"><img src="https://img.shields.io/docker/pulls/ultralytics/ultralytics?logo=docker" alt="Ultralytics Docker Pulls"></a>
|
|
98
|
+
<a href="https://ultralytics.com/discord"><img alt="Ultralytics Discord" src="https://img.shields.io/discord/1089800235347353640?logo=discord&logoColor=white&label=Discord&color=blue"></a>
|
|
99
99
|
<br>
|
|
100
|
-
<a href="https://console.paperspace.com/github/ultralytics/ultralytics"><img src="https://assets.paperspace.io/img/gradient-badge.svg" alt="Run on Gradient"></a>
|
|
101
|
-
<a href="https://colab.research.google.com/github/ultralytics/ultralytics/blob/main/examples/tutorial.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"></a>
|
|
102
|
-
<a href="https://www.kaggle.com/ultralytics/yolov8"><img src="https://kaggle.com/static/images/open-in-kaggle.svg" alt="Open In Kaggle"></a>
|
|
100
|
+
<a href="https://console.paperspace.com/github/ultralytics/ultralytics"><img src="https://assets.paperspace.io/img/gradient-badge.svg" alt="Run Ultralytics on Gradient"></a>
|
|
101
|
+
<a href="https://colab.research.google.com/github/ultralytics/ultralytics/blob/main/examples/tutorial.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open Ultralytics In Colab"></a>
|
|
102
|
+
<a href="https://www.kaggle.com/ultralytics/yolov8"><img src="https://kaggle.com/static/images/open-in-kaggle.svg" alt="Open Ultralytics In Kaggle"></a>
|
|
103
103
|
</div>
|
|
104
104
|
<br>
|
|
105
105
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
tests/__init__.py,sha256=9evx3lOdKZeY1iWXvH-FkMkgf8jLucWICoabzeD6aYg,626
|
|
2
2
|
tests/conftest.py,sha256=WOrMDmrxdYskt1nQmbPPhZ6zo1cJzS4vO7gVcKuEo2k,2545
|
|
3
3
|
tests/test_cli.py,sha256=nQs3UUfEq713bgRc082eFAVROce1XkPklWpg0uOJQ6o,4979
|
|
4
|
-
tests/test_cuda.py,sha256=
|
|
4
|
+
tests/test_cuda.py,sha256=ErmZucvQrw6oGGXOM9TRW7vijNELfEVjYXoCnb_m29I,4957
|
|
5
5
|
tests/test_engine.py,sha256=fFzcbqZuMkzZHjA5FMddWcqVE703iq8HB_a0Q2lcBKM,4705
|
|
6
6
|
tests/test_explorer.py,sha256=r1pWer2y290Y0DqsM-La7egfEY0497YCdC4rwq3URV4,2178
|
|
7
7
|
tests/test_exports.py,sha256=qc4YOgsGixqYLO6IRNY16-v6z14R0dp5fdni1v222xw,8034
|
|
8
8
|
tests/test_integrations.py,sha256=8Ru7GyKV8j44EEc8X9_E7q7aR4CTOIMPuSagXjSGUxw,5847
|
|
9
9
|
tests/test_python.py,sha256=5cTM45P77LoOl-qixJ7TQmf66zw69adj01kNaaSxHqE,20265
|
|
10
|
-
ultralytics/__init__.py,sha256=
|
|
10
|
+
ultralytics/__init__.py,sha256=1Edv7ZpFN2p9aTfU0xIEDc_e8ajnzH-lQ6We20LXv2g,694
|
|
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=JblkT6Ze9MZ8hSs8gkV8JPcEKNMm-YqRqM4x501Dn9g,21507
|
|
@@ -33,7 +33,7 @@ ultralytics/cfg/datasets/coco8-seg.yaml,sha256=hH0sEb_ZdtjziVg9PNNjdZADuYIbvYLD9
|
|
|
33
33
|
ultralytics/cfg/datasets/coco8.yaml,sha256=yGDMRSehDIsT1h36JA-FTWZrtJRertD3tfoBLsS2Ydc,1840
|
|
34
34
|
ultralytics/cfg/datasets/crack-seg.yaml,sha256=asdmbm4UXsUDovHvsMZdhbAa97vtd3bN72EqEjfnP-0,791
|
|
35
35
|
ultralytics/cfg/datasets/dota8.yaml,sha256=HlwU4tpnUCCn7DQBXYRBGbfARNcALfCCRJnqycmHprg,1042
|
|
36
|
-
ultralytics/cfg/datasets/lvis.yaml,sha256
|
|
36
|
+
ultralytics/cfg/datasets/lvis.yaml,sha256=F9QyWkwTZMyP7AJwrkAAvz8HOAp_zVIUZtVsaeSOp3I,29689
|
|
37
37
|
ultralytics/cfg/datasets/open-images-v7.yaml,sha256=gsN0JXLSdQglio024p6NEegNbX06kJUNuj0bh9oEi-U,12493
|
|
38
38
|
ultralytics/cfg/datasets/package-seg.yaml,sha256=t6iu8MwulLxLVT2QdeOXz2fcCRcqufGpKOXUjTg2gMA,801
|
|
39
39
|
ultralytics/cfg/datasets/signature.yaml,sha256=lHAS4HsFIhUbIhoBvCQd7T3ADmCfc5QG_wrEvOmq2NA,728
|
|
@@ -66,10 +66,13 @@ ultralytics/cfg/models/v8/yolov8-seg.yaml,sha256=fN85m_aDMCH4oTJ3z-ft98Pdh6dk0pZ
|
|
|
66
66
|
ultralytics/cfg/models/v8/yolov8-world.yaml,sha256=RXTp_tgix8dbnVHprapxiK2aax7M2qIfmuR-aAve4sU,2019
|
|
67
67
|
ultralytics/cfg/models/v8/yolov8-worldv2.yaml,sha256=fvGVUxvlBOjN6LUiiaiGsnjK5ZKjwYGWxgkJ49hGmMg,1956
|
|
68
68
|
ultralytics/cfg/models/v8/yolov8.yaml,sha256=VjSe_V2Gn9ZpJrwTtz0A6_6IMp6UuugNiR7aEShR5rc,1889
|
|
69
|
-
ultralytics/cfg/models/v9/yolov9c-seg.yaml,sha256=
|
|
70
|
-
ultralytics/cfg/models/v9/yolov9c.yaml,sha256=
|
|
71
|
-
ultralytics/cfg/models/v9/yolov9e-seg.yaml,sha256=
|
|
72
|
-
ultralytics/cfg/models/v9/yolov9e.yaml,sha256=
|
|
69
|
+
ultralytics/cfg/models/v9/yolov9c-seg.yaml,sha256=Bled9VT_X3AGGe9OATXGA8arq_USbGUc8pjsy684A7w,1346
|
|
70
|
+
ultralytics/cfg/models/v9/yolov9c.yaml,sha256=vPfYbdDDg2aDm2yVRfyjXNOgFryTUWFG60lcHQjLpuA,1326
|
|
71
|
+
ultralytics/cfg/models/v9/yolov9e-seg.yaml,sha256=ycMexB2qKdte-hko7SF9PY4qOng1moIoq-ssg4a3teA,2277
|
|
72
|
+
ultralytics/cfg/models/v9/yolov9e.yaml,sha256=dhaR47WxuLOrZWDCceS4bQG00sQdrMc8FQ5K3mKsnaU,2256
|
|
73
|
+
ultralytics/cfg/models/v9/yolov9m.yaml,sha256=l6CmivzNu44sRVmkQXk4-tXflbV1nWnk5MSc8su2vhs,1311
|
|
74
|
+
ultralytics/cfg/models/v9/yolov9s.yaml,sha256=lPWcu-6ub1kCBD6zIDFwthYZ3RvdJfODWKy3vEQWRjo,1291
|
|
75
|
+
ultralytics/cfg/models/v9/yolov9t.yaml,sha256=qL__kr6GoefpQWP4jV0jdzwTp46bdFUcqtPRnfDbkY8,1275
|
|
73
76
|
ultralytics/cfg/trackers/botsort.yaml,sha256=YrPmj18p1UU40kJH5NRdL_4S8f7knggkk_q2KYnVudo,883
|
|
74
77
|
ultralytics/cfg/trackers/bytetrack.yaml,sha256=QvHmtuwulK4X6j3T5VEqtCm0sbWWBUVmWPcCcM20qe0,688
|
|
75
78
|
ultralytics/data/__init__.py,sha256=VGe-ATG7j35F4A4r8Jmzffjlhve4JAJPgRa5ahKTU18,616
|
|
@@ -86,7 +89,7 @@ ultralytics/data/explorer/__init__.py,sha256=-Y3m1ZedepOQUv_KW82zaGxvU_PSHcuwUTF
|
|
|
86
89
|
ultralytics/data/explorer/explorer.py,sha256=GqQcHkETxlS0w-lYUnTE_RJ9wPReK7c9XG41-k9FoxE,18668
|
|
87
90
|
ultralytics/data/explorer/utils.py,sha256=EvvukQiQUTBrsZznmMnyEX2EqTuwZo_Geyc8yfi8NIA,7085
|
|
88
91
|
ultralytics/data/explorer/gui/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
|
|
89
|
-
ultralytics/data/explorer/gui/dash.py,sha256=
|
|
92
|
+
ultralytics/data/explorer/gui/dash.py,sha256=CPlFIIhf53j_YVAqealsC3AbcztdPqZxfniQcBnlKK4,10042
|
|
90
93
|
ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
|
|
91
94
|
ultralytics/engine/exporter.py,sha256=JWVmXMD8RpXOayisS2_Q4gSeqvKAeXfMt2Y-azOZiIo,58464
|
|
92
95
|
ultralytics/engine/model.py,sha256=qSvCT-l8mLT-CDixy6mjyC7N5x3edsWmobRWbojwLUM,40073
|
|
@@ -156,9 +159,9 @@ ultralytics/models/yolo/world/train.py,sha256=acYN2-onL69LrL4av6_hY2r5AY0urC0WVi
|
|
|
156
159
|
ultralytics/models/yolo/world/train_world.py,sha256=n0XTAHYxufHU5OZ_QjpkHieKik-24z0LrYKzWYbCLvA,4798
|
|
157
160
|
ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,587
|
|
158
161
|
ultralytics/nn/autobackend.py,sha256=zsMF-GS12xtMBeQEkSoJ5cudEHyzMaRSQBuXcfuBNdo,31210
|
|
159
|
-
ultralytics/nn/tasks.py,sha256=
|
|
160
|
-
ultralytics/nn/modules/__init__.py,sha256=
|
|
161
|
-
ultralytics/nn/modules/block.py,sha256=
|
|
162
|
+
ultralytics/nn/tasks.py,sha256=g2NDjtWGHhNb3OXS7A-IMb7Smdvf0ugpftum3qNf000,44210
|
|
163
|
+
ultralytics/nn/modules/__init__.py,sha256=JPj_TloK33DdxS8gvA8Pcet5ax1SgbRcb5mTTOS0DCI,2371
|
|
164
|
+
ultralytics/nn/modules/block.py,sha256=T7XV7nykPsVL6y1JsFsK566d6kAGN1DICh25g3ooWjU,26033
|
|
162
165
|
ultralytics/nn/modules/conv.py,sha256=Ywe87IhuaS22mR2JJ9xjnW8Sb-m7WTjxuqIxV_Dv8lI,12722
|
|
163
166
|
ultralytics/nn/modules/head.py,sha256=3N_4zW1UvhI1jCrIxIkNYxQDdiW6HxtxpaNAAudq6NU,22236
|
|
164
167
|
ultralytics/nn/modules/transformer.py,sha256=AxD9uURpCl-EqvXe3DiG6JW-pBzB16G-AahLdZ7yayo,17909
|
|
@@ -194,7 +197,7 @@ ultralytics/utils/loss.py,sha256=ejXnPEIAzNEoNz2UjW0_fcdeUs9Hy-jPzUrJ3FiIIwE,327
|
|
|
194
197
|
ultralytics/utils/metrics.py,sha256=XPD-xP0fchR8KgCuTcihV2-n0EK1cWi3-53BWN_pLuA,53518
|
|
195
198
|
ultralytics/utils/ops.py,sha256=J9wbb9aTW9aaI5DJRqA72BZAX77cmVyCJdnGuwkDu-k,33089
|
|
196
199
|
ultralytics/utils/patches.py,sha256=SgMqeMsq2K6JoBJP1NplXMl9C6rK0JeJUChjBrJOneo,2750
|
|
197
|
-
ultralytics/utils/plotting.py,sha256=
|
|
200
|
+
ultralytics/utils/plotting.py,sha256=KBZWfRGfptzmNBJqZSgMHpMJS3cHuaHiLNqkGUm-RT8,49040
|
|
198
201
|
ultralytics/utils/tal.py,sha256=xuIyryUjaaYHkHPG9GvBwh1xxN2Hq4y3hXOtuERehwY,16017
|
|
199
202
|
ultralytics/utils/torch_utils.py,sha256=G8gVzI3sOSVSHORi5a2u-iFhUCGGHn5_eKHaOaLfsOY,27047
|
|
200
203
|
ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
|
|
@@ -205,14 +208,14 @@ ultralytics/utils/callbacks/clearml.py,sha256=M9Fi1OfdWqcm8uVkauuX3zJIYhNh6Tp7Jo
|
|
|
205
208
|
ultralytics/utils/callbacks/comet.py,sha256=QR3-9f0L_W7nZWWg_OEN7t8La2JotapSS-CnNYVjCdk,13744
|
|
206
209
|
ultralytics/utils/callbacks/dvc.py,sha256=WIClMsuvhiiyrwRv5BsZLxjsxYNJ3Y8Vq7zN0Bthtro,5045
|
|
207
210
|
ultralytics/utils/callbacks/hub.py,sha256=IPNnCRlAEFA-Dt18JWTuHhaQpcAy3XGgxBD4JhO0jSs,3586
|
|
208
|
-
ultralytics/utils/callbacks/mlflow.py,sha256=
|
|
211
|
+
ultralytics/utils/callbacks/mlflow.py,sha256=_bUzHyPb0npne0WFlGzlGCy-X5sxGQhC_xA3dZbF08I,5391
|
|
209
212
|
ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyzC5q7p4ipQ,3756
|
|
210
213
|
ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
|
|
211
214
|
ultralytics/utils/callbacks/tensorboard.py,sha256=QEgOVhUqY9akOs5TJIwz1Rvn6l32xWLpOxlwEyWF0B8,4136
|
|
212
215
|
ultralytics/utils/callbacks/wb.py,sha256=9-fjQIdLjr3b73DTE3rHO171KvbH1VweJ-bmbv-rqTw,6747
|
|
213
|
-
ultralytics-8.2.
|
|
214
|
-
ultralytics-8.2.
|
|
215
|
-
ultralytics-8.2.
|
|
216
|
-
ultralytics-8.2.
|
|
217
|
-
ultralytics-8.2.
|
|
218
|
-
ultralytics-8.2.
|
|
216
|
+
ultralytics-8.2.36.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
|
217
|
+
ultralytics-8.2.36.dist-info/METADATA,sha256=Ue0E-rgJZzMjkdxsVkLHfmZX4KAnjWviz-wAUoKj8tg,41312
|
|
218
|
+
ultralytics-8.2.36.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
|
|
219
|
+
ultralytics-8.2.36.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
|
|
220
|
+
ultralytics-8.2.36.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
|
|
221
|
+
ultralytics-8.2.36.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|