I am working on the yolo_filter_boxes()
(exercise 1) and am confused by the input data.
The input includes box_class_probs
, which is a tensor of shape (19,19,5,80). So if I understand correctly, that represents an image with 19x19 units. For each element of the 19x19 square array there are 80 5-long vector with the elements representing obj_yes_or_no, 𝑏𝑥,𝑏𝑦,𝑏ℎ,𝑏𝑤 (one vector for each object type). For each 5-long vector for eacb element of the 19x19 square array there are 80 probability values.
So therefore if I take the slice box_class_probs[0,0,0,:]
, the 80-long vector I get is the list of probabilities for a single one of the units iu the 19x19 grid.
Is that all correct? Just want to make sure I haven’t gotten confused, I have a hard time thinking in more than three dimensions.
But when I print that vector, it doesnt look like probabilities. Instead of being values between 0 and 1 as I would expect for probabilities, they are like this:
tf.Tensor(
[ 4.8387423 7.328443 -0.7113974 6.6432576 -2.409118 3.4563496
-1.0087581 6.6609774 -0.32172585 -1.3336947 2.7046719 -1.0027521
1.2326477 1.7546655 6.731361 -3.2655444 3.0346055 -4.070446
2.7174702 2.3567047 8.899788 -3.7231026 -3.8897858 -1.5394197
-2.0705626 -5.0586677 2.354822 1.4210849 0.9612765 -0.7146739
-1.6633306 3.8747072 4.1295757 2.9190474 -2.3499708 0.54025215
-4.309061 5.383872 0.80084455 1.3144112 -0.94119895 3.6818004
2.1280382 -5.601334 4.6845837 -2.130794 5.486091 4.6491737
1.4902996 -3.1898413 1.4414312 -1.8833437 5.5230894 5.149619
-2.2734754 5.937464 5.5342307 -0.68562555 3.8225415 -4.2720127
-3.2602382 2.4359722 4.1098633 -0.02034247 4.6250935 -1.3381572
3.6894886 6.286919 -0.08070612 0.62090886 0.5780692 -4.2318873
2.5384698 7.987104 7.524409 1.2095237 -0.2506355 0.7551234
-1.9012783 1.1722656 ], shape=(80,), dtype=float32)
Can someone help me identify where my disconnect is?