коэффициент кости + проигрыш в кости для набора данных проверки не равен 1 - PullRequest
0 голосов
/ 06 марта 2020

Я тренируюсь в сети с функцией потери потери костей и метрикой c коэффициента костей. Ниже вы можете найти функцию, которую я использую для расчета потери кости:

def dice_coef(y_true, y_pred):
    y_true_f = K.flatten(y_true)
    y_pred_f = K.flatten(y_pred)
    intersection = K.sum(y_true_f * y_pred_f)
    return (2. * intersection + 1.) / (K.sum(y_true_f * y_true_f) + K.sum(y_pred_f * y_pred_f) + 1.)

, а затем

def dice_coef_loss(y_true, y_pred):
    return 1.-dice_coef(y_true, y_pred)

Проблема, которую я имею во время тренировки, - сумма потери и коэффициент кости всегда равен 1, что ожидается, но во время проверки сумма коэффициента потерь и кости больше 1. Как это возможно?

Последний уровень сети - сигмоидальная функция для двоичной сегментации.

Я загружаю валидационные и обучающие графики. Из графиков также видно, что точность проверки увеличивается, однако потери при проверке колеблются.

enter image description here

enter image description here

...