Почему потеря игральных костей отличается от оценки метрических костей c? - PullRequest
1 голос
/ 24 января 2020

Я использую следующий код python для расчета потерь.

def dice_coefficient(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)
    return (2. * intersection + smooth) / (K.sum(y_true_f) + K.sum(y_pred_f) + smooth)


def dice_coefficient_loss(y_true, y_pred):
    return -dice_coefficient(y_true, y_pred)

model.compile(
    optimizer=opt,
    loss=dice_coefficient_loss,
    metrics=[dice_coefficient],
)

Моя модель заканчивает эпоху этим

488/487 [===== =========================] - 823 с 2 с / шаг - потеря: -0,9217 - коэффициент увеличения кубика: 0,9217 - val_loss: -0,9367 - коэффициент_валанса_0,8289

Почему значения val_loss и val_dice_coefficient различаются и какой из них правильный? Я считаю, что 0,8289 - это правильно, но почему во всех эпохах есть расхождения в оценочных потерях.

Я изменил генератор проверки на тренировочный, и у меня все еще есть разница между ними. Я использую Адама, и моя модель 3d unet. У меня есть норма партии. Я не использую регуляризацию и не выбываю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...