我能把这个损失函数用于YOLO吗
def myLoss(y_actual,y_pred):
a = tf.keras.losses.BinaryCrossentropy()(y_actual[:,:,:,0],y_pred[:,:,:,0])
b = tf.keras.losses.MeanSquaredError()(y_actual[:,:,:,1:], y_pred[:,:,:,1:]*y_actual[:,:,:,:1])
loss= a + b
return loss其中y_actual = Pc,bx,by,bw,bh,c1,c2,c3
pc = c1、c2、c3之一存在于特定网格中的概率,
bx,by,bw,bh是特定网格的边界框参数,
c1,c2,c3是我想要预测的3类,例如: 0,0,1,代表3类
我在某个地方读到,当Pc_actual=0时,损失并不关心边框和类的预测,所以我将它们与Pc_actual相乘,所以当pc_actual为0时,与这些项对应的损失是0。
如果我错了,请纠正我
发布于 2020-07-07 00:53:04
当Pc_actual=0不关心边界框和类预测时,您是正确的,但是它关心的是Pc_pred的结果,因为您也需要模型来学习它,所以当Pc_actual=0时,损失函数应该是(Pc_actual - Pc_pred)**2,当它预测没有对象时,它会惩罚模型。
https://stackoverflow.com/questions/62756658
复制相似问题