Почему я получаю разные метрики после model.evaluate vs model.predict и затем model.metrics в Keras? - PullRequest
1 голос
/ 29 апреля 2019

Я пытаюсь понять, почему я получаю разные метрики, используя model.evaluate против model.predict, а затем model.metrics.

Я работаю над сегментарной сегментацией.

У меня есть оценочный набор из 24 изображений.

У меня есть пользовательские показатели DICE INDEX:

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)

    result =(2 * intersection) / (K.sum(y_true_f) + K.sum(y_pred_f))

return result

Когда я использую model.evaluate, я получаю оценку в 0,9093835949897766.

Когда я использую model.predict, а затем model.metrics, я получаю оценку в 0,9092264051238695.

Чтобы повысить точность: я установил размер партии 24 в model.predict, а также в model.evaluate, чтобы убедиться, что проблема не связана с размером партии. Я не знаю, что происходит, когда размер партии больше (например, 32), чем количество выборок в наборе оценки…

Наконец, чтобы вычислить метрики после model.prediction, я запускаю:

dice_result = 0

for y_i in range(len(y)):

   dice_result += tf.Session().run(tf.cast(dice_coef(y[y_i], preds[y_i]),

   tf.float64))

   tf.Session().close

dice_result /= (len(y))

Я думал, что причиной разницы является кастинг tf.float64?

Вы думаете об объяснении?

Спасибо за вашу помощь.

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