yolo3-tf2 icon indicating copy to clipboard operation
yolo3-tf2 copied to clipboard

您好,我可能发现了一个在yolo_traing.py中的bug

Open wenlongli10 opened this issue 3 years ago • 2 comments
trafficstars

是这样的,因为我的数据长宽大概为256,640这样的,所以我准备设置将训练的inputshape也设置为256,640,但训练时损失会很快变为负数。 而当我全程使用正方形训练和测试都没有问题.使用inputshape为正方形训练,然后设置inputshape为矩形测试也没有问题 经过一路排查,应该是将y_true的x,y转为x,y的偏移量时grid_shapes[l]的长,宽顺序反了: image

将其中的grid_shapes[l][:]改为grid_shapes[l][::-1]我的训练就正常了。 因为正方形长宽高相等,所以不影响,而矩形这样会导致偏移量有大于1的值产生,在使用keras.binary_crossentropy计算损失时,label大于1则会产生负损失。 keras.binary_crossentropy(label , logits, from_logits=True)的计算公式如下: x = logits, z = labels loss = max(x, 0) - x * z + log(1 + exp(-abs(x)))

wenlongli10 avatar Dec 02 '21 12:12 wenlongli10

好!我改一下,我自己检查一下

bubbliiiing avatar Dec 06 '21 15:12 bubbliiiing

3Q

bubbliiiing avatar Dec 06 '21 15:12 bubbliiiing