Keras自定义指标

时间:2018-04-13 12:50:07

标签: tensorflow deep-learning keras

如何创建一个自定义指标,该指标在分类问题上接受正确的预测,不仅在预测类别和真实类别相同时,而且在预测类别是真实类别的邻居类别时?“ p>

2 个答案:

答案 0 :(得分:2)

如果你考虑到这个问题,这个答案是有效的,只有一个班级"应该输出。

def neighbourMetric(yTrue,yPred):

    #these make this function not differntiable, but since you asked for "metric" it's ok
    trueIndices = K.argmax(yTrue)
    predIndices = K.argmax(yPred)

    minAccepted = trueIndices - 1
    maxAccepted = trueIndices + 1


    satisfiesMin = K.cast(K.greater_equal(predIndices,minAccepted),K.floatx())
    satisfiesMax = K.cast(K.less_equal(predIndices,maxAccepted),K.floatx())

    satisfiesBoth = satisfiesMin * satisfiesMax

    return K.mean(satisfiesBoth)

答案 1 :(得分:1)

以下是我解决它的方法:

def one_off(y_true, y_pred):
    return K.cast(K.abs(K.argmax(y_true, axis=-1) -  K.argmax(y_pred, axis=-1)) < 2, K.floatx())