Я использую следующий код 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. У меня есть норма партии. Я не использую регуляризацию и не выбываю