Keras模型中的准确性和精确性

时间:2018-09-18 20:42:30

标签: python-3.x tensorflow keras precision-recall

我正在尝试手动计算Keras模型的准确性和精确度。我查看了metrics.py函数,它具有以下代码来计算精度。

def precision(y_true, y_pred):
   '''Calculates the precision, a metric for multi-label classification of
   how many selected items are relevant.
   '''
   true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
   predicted_positives = K.sum(K.round(K.clip(y_pred, 0, 1)))
   precision = true_positives / (predicted_positives + K.epsilon())
return precision

我不明白的是为什么我们应该做y_true * y_pred以获得真实的肯定?我的y_pred是一个长度为7的矢量,它对我的​​图像中的每个像素都有概率,而我的y_true是一个经过热编码的legnth 7矢量。 谁能帮我理解y_true * y_pred在计算真实肯定时。

也使用上面的精度函数作为参考,我使用下面的自定义函数来提高精度。

def overall_acc(y_true, y_pred):
    y_true_2D = K.max(y_true, axis=1, keepdims=False)
    y_pred_2D = K.max(y_true*y_pred, axis=1, keepdims=False)
    y_true_f = K.sum(K.flatten(y_true_2D))
    y_pred_f = K.sum(K.flatten(y_pred_2D))
    acc = y_pred_f / (y_true_f)

return acc

计算准确性是否正确?

任何帮助将不胜感激。

0 个答案:

没有答案