@@ -41,11 +41,23 @@ def test_yolov8_loss_wrapper():
41
41
x = torch .randn ((batch_size , 3 , 640 , 640 )) # YOLOv8 expects (B, 3, 640, 640)
42
42
43
43
# Create targets
44
- targets = []
44
+ """ targets = []
45
45
for _ in range(batch_size):
46
46
boxes = torch.tensor([[0.1, 0.1, 0.3, 0.3], [0.5, 0.5, 0.8, 0.8]]) # [x1, y1, x2, y2]
47
47
labels = torch.zeros(2, dtype=torch.long) # Use class 0 for testing
48
- targets .append ({"boxes" : boxes , "labels" : labels })
48
+ targets.append({"boxes": boxes, "labels": labels})"""
49
+ targets = torch .tensor (
50
+ [
51
+ [0.0000 , 20.0000 , 0.7738 , 0.3919 , 0.4525 , 0.7582 ],
52
+ [0.0000 , 20.0000 , 0.2487 , 0.4062 , 0.4966 , 0.5787 ],
53
+ [0.0000 , 20.0000 , 0.5667 , 0.2772 , 0.0791 , 0.2313 ],
54
+ [0.0000 , 20.0000 , 0.1009 , 0.1955 , 0.2002 , 0.0835 ],
55
+ [1.0000 , 20.0000 , 0.7738 , 0.3919 , 0.4525 , 0.7582 ],
56
+ [1.0000 , 20.0000 , 0.2487 , 0.4062 , 0.4966 , 0.5787 ],
57
+ [1.0000 , 20.0000 , 0.5667 , 0.2772 , 0.0791 , 0.2313 ],
58
+ [1.0000 , 20.0000 , 0.1009 , 0.1955 , 0.2002 , 0.0835 ],
59
+ ]
60
+ )
49
61
50
62
# Test training mode
51
63
losses = wrapper (x , targets )
@@ -94,11 +106,23 @@ def test_yolov10_loss_wrapper():
94
106
x = torch .randn ((batch_size , 3 , 640 , 640 )) # Standard YOLO input size
95
107
96
108
# Create targets
97
- targets = []
109
+ """ targets = []
98
110
for _ in range(batch_size):
99
111
boxes = torch.tensor([[0.1, 0.1, 0.3, 0.3], [0.5, 0.5, 0.8, 0.8]]) # [x1, y1, x2, y2]
100
112
labels = torch.zeros(2, dtype=torch.long) # Use class 0 for testing
101
- targets .append ({"boxes" : boxes , "labels" : labels })
113
+ targets.append({"boxes": boxes, "labels": labels})"""
114
+ targets = torch .tensor (
115
+ [
116
+ [0.0000 , 20.0000 , 0.7738 , 0.3919 , 0.4525 , 0.7582 ],
117
+ [0.0000 , 20.0000 , 0.2487 , 0.4062 , 0.4966 , 0.5787 ],
118
+ [0.0000 , 20.0000 , 0.5667 , 0.2772 , 0.0791 , 0.2313 ],
119
+ [0.0000 , 20.0000 , 0.1009 , 0.1955 , 0.2002 , 0.0835 ],
120
+ [1.0000 , 20.0000 , 0.7738 , 0.3919 , 0.4525 , 0.7582 ],
121
+ [1.0000 , 20.0000 , 0.2487 , 0.4062 , 0.4966 , 0.5787 ],
122
+ [1.0000 , 20.0000 , 0.5667 , 0.2772 , 0.0791 , 0.2313 ],
123
+ [1.0000 , 20.0000 , 0.1009 , 0.1955 , 0.2002 , 0.0835 ],
124
+ ]
125
+ )
102
126
103
127
# Test training mode
104
128
losses = wrapper (x , targets )
@@ -219,7 +243,7 @@ def loss(self, items):
219
243
wrapper .train ()
220
244
# Dummy input and targets
221
245
x = torch .zeros ((1 , 3 , 416 , 416 ))
222
- targets = [{ "boxes" : torch .zeros (( 1 , 4 )), "labels" : torch . zeros (( 1 ,))}]
246
+ targets = torch .tensor ([[ 0.0000 , 20.0000 , 0.7738 , 0.3919 , 0.4525 , 0.7582 ]])
223
247
losses = wrapper (x , targets )
224
248
assert set (losses .keys ()) == {"loss_total" , "loss_box" , "loss_cls" , "loss_dfl" }
225
249
assert losses ["loss_total" ].item () == 6.0 # sum([1.0, 2.0, 3.0])
@@ -264,7 +288,7 @@ def loss(self, items):
264
288
wrapper = PyTorchYoloLossWrapper (test_model , name = "yolov8n" )
265
289
wrapper .train ()
266
290
x = torch .zeros ((1 , 3 , 416 , 416 ))
267
- targets = [{ "boxes" : torch .zeros (( 1 , 4 )), "labels" : torch . zeros (( 1 ,))}]
291
+ targets = torch .tensor ([[ 0.0000 , 20.0000 , 0.7738 , 0.3919 , 0.4525 , 0.7582 ]])
268
292
losses = wrapper (x , targets )
269
293
assert set (losses .keys ()) == {"loss_total" , "loss_box" , "loss_cls" , "loss_dfl" }
270
294
assert losses ["loss_total" ].item () == 6.0
@@ -439,9 +463,7 @@ def loss(self, items):
439
463
for batch_size in batch_sizes :
440
464
for box_count in box_counts :
441
465
x = torch .zeros ((batch_size , 3 , 416 , 416 ))
442
- targets = [
443
- {"boxes" : torch .zeros ((box_count , 4 )), "labels" : torch .zeros (box_count )} for _ in range (batch_size )
444
- ]
466
+ targets = torch .tensor ([[0.0000 , 20.0000 , 0.7738 , 0.3919 , 0.4525 , 0.7582 ]] * batch_size )
445
467
losses = wrapper (x , targets )
446
468
447
469
# Verify loss structure
0 commit comments