@@ -41,11 +41,20 @@ 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 ([[ 0.0000 , 20.0000 , 0.7738 , 0.3919 , 0.4525 , 0.7582 ],
50
+ [ 0.0000 , 20.0000 , 0.2487 , 0.4062 , 0.4966 , 0.5787 ],
51
+ [ 0.0000 , 20.0000 , 0.5667 , 0.2772 , 0.0791 , 0.2313 ],
52
+ [ 0.0000 , 20.0000 , 0.1009 , 0.1955 , 0.2002 , 0.0835 ],
53
+ [ 1.0000 , 20.0000 , 0.7738 , 0.3919 , 0.4525 , 0.7582 ],
54
+ [ 1.0000 , 20.0000 , 0.2487 , 0.4062 , 0.4966 , 0.5787 ],
55
+ [ 1.0000 , 20.0000 , 0.5667 , 0.2772 , 0.0791 , 0.2313 ],
56
+ [ 1.0000 , 20.0000 , 0.1009 , 0.1955 , 0.2002 , 0.0835 ]])
57
+
49
58
50
59
# Test training mode
51
60
losses = wrapper (x , targets )
@@ -94,11 +103,19 @@ def test_yolov10_loss_wrapper():
94
103
x = torch .randn ((batch_size , 3 , 640 , 640 )) # Standard YOLO input size
95
104
96
105
# Create targets
97
- targets = []
106
+ """ targets = []
98
107
for _ in range(batch_size):
99
108
boxes = torch.tensor([[0.1, 0.1, 0.3, 0.3], [0.5, 0.5, 0.8, 0.8]]) # [x1, y1, x2, y2]
100
109
labels = torch.zeros(2, dtype=torch.long) # Use class 0 for testing
101
- targets .append ({"boxes" : boxes , "labels" : labels })
110
+ targets.append({"boxes": boxes, "labels": labels})"""
111
+ targets = torch .tensor ([[ 0.0000 , 20.0000 , 0.7738 , 0.3919 , 0.4525 , 0.7582 ],
112
+ [ 0.0000 , 20.0000 , 0.2487 , 0.4062 , 0.4966 , 0.5787 ],
113
+ [ 0.0000 , 20.0000 , 0.5667 , 0.2772 , 0.0791 , 0.2313 ],
114
+ [ 0.0000 , 20.0000 , 0.1009 , 0.1955 , 0.2002 , 0.0835 ],
115
+ [ 1.0000 , 20.0000 , 0.7738 , 0.3919 , 0.4525 , 0.7582 ],
116
+ [ 1.0000 , 20.0000 , 0.2487 , 0.4062 , 0.4966 , 0.5787 ],
117
+ [ 1.0000 , 20.0000 , 0.5667 , 0.2772 , 0.0791 , 0.2313 ],
118
+ [ 1.0000 , 20.0000 , 0.1009 , 0.1955 , 0.2002 , 0.0835 ]])
102
119
103
120
# Test training mode
104
121
losses = wrapper (x , targets )
@@ -219,7 +236,7 @@ def loss(self, items):
219
236
wrapper .train ()
220
237
# Dummy input and targets
221
238
x = torch .zeros ((1 , 3 , 416 , 416 ))
222
- targets = [{ "boxes" : torch .zeros (( 1 , 4 )), "labels" : torch . zeros (( 1 ,))}]
239
+ targets = torch .tensor ([[ 0.0000 , 20.0000 , 0.7738 , 0.3919 , 0.4525 , 0.7582 ]])
223
240
losses = wrapper (x , targets )
224
241
assert set (losses .keys ()) == {"loss_total" , "loss_box" , "loss_cls" , "loss_dfl" }
225
242
assert losses ["loss_total" ].item () == 6.0 # sum([1.0, 2.0, 3.0])
@@ -264,7 +281,7 @@ def loss(self, items):
264
281
wrapper = PyTorchYoloLossWrapper (test_model , name = "yolov8n" )
265
282
wrapper .train ()
266
283
x = torch .zeros ((1 , 3 , 416 , 416 ))
267
- targets = [{ "boxes" : torch .zeros (( 1 , 4 )), "labels" : torch . zeros (( 1 ,))}]
284
+ targets = torch .tensor ([[ 0.0000 , 20.0000 , 0.7738 , 0.3919 , 0.4525 , 0.7582 ]])
268
285
losses = wrapper (x , targets )
269
286
assert set (losses .keys ()) == {"loss_total" , "loss_box" , "loss_cls" , "loss_dfl" }
270
287
assert losses ["loss_total" ].item () == 6.0
@@ -439,9 +456,7 @@ def loss(self, items):
439
456
for batch_size in batch_sizes :
440
457
for box_count in box_counts :
441
458
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
- ]
459
+ targets = torch .tensor ([[ 0.0000 , 20.0000 , 0.7738 , 0.3919 , 0.4525 , 0.7582 ]]* batch_size )
445
460
losses = wrapper (x , targets )
446
461
447
462
# Verify loss structure
0 commit comments