采用的是keras,loss為dice_loss,二分類問題的影像分割,為什么跑的程序中label=1的標簽iou不斷下降,最后降為0再也不動?
def dice_loss(y_true, y_pred, smooth=1.):
y_true_f = K.flatten(y_true)
y_pred_f = K.flatten(y_pred)
intersection = K.sum(y_true_f * y_pred_f)
loss += (2. * intersection + smooth) / (K.sum(y_true_f) + K.sum(y_pred_f) + smooth)
return 1 - loss
奇怪的是,當我把代碼改為
def dice_loss(y_true, y_pred, smooth=1.):
y_true_f = K.flatten(y_true[...,1])
y_pred_f = K.flatten(y_pred[...,1])
intersection = K.sum(y_true_f * y_pred_f)
loss += (2. * intersection + smooth) / (K.sum(y_true_f) + K.sum(y_pred_f) + smooth)
return 1 - loss
這個時候iou指標又會正常的上漲。。有大佬知道這兩個計算公式有什么不同?第二個代碼是否能代表二分類的dice_loss呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/34887.html
標籤:機器視覺
