def recall_female(y_true, y_pred): """ Compute recall for the class "female" :param y_true: true labels (dummy numpy array, column 0 for male, column 1 for female) :param y_pred: predicted labels (dummy numpy array, column 0 for male, column 1 for female) :return: recall (float) """ nb_female = K.sum(K.round(K.clip(y_true[:, 1], 0, 1))) male_true_positives = K.sum( K.round(K.clip(y_true[:, 1] * y_pred[:, 1], 0, 1))) recall = male_true_positives / (nb_female + K.epsilon()) return recall
def precision_male(y_true, y_pred): """ Compute precision for the class "male" :param y_true: true labels (dummy numpy array, column 0 for male, column 1 for female) :param y_pred: predicted labels (dummy numpy array, column 0 for male, column 1 for female) :return: precision (float) """ nb_male_pred = K.sum(K.round(K.clip(y_pred[:, 0], 0, 1))) male_true_positives = K.sum( K.round(K.clip(y_true[:, 0] * y_pred[:, 0], 0, 1))) precision = male_true_positives / (nb_male_pred + K.epsilon()) return precision
def binary_accuracy(y_true, y_pred): return K.mean(K.equal(y_true, K.round(y_pred)), axis=-1)
def binary_accuracy(y_true, y_pred): return K.mean(K.equal(y_true, K.round(y_pred)), axis=-1)
def iou_accuracy(y_true, y_pred): i = K.cast(K.cumsum(K.maximum(y_true*K.round(y_pred), 0.)), K.floatx()) u = K.cast(K.cumsum(K.maximum(y_true+K.round(y_pred), 0.)), K.floatx()) return i/u