Как ясно из соответствующих документов Keras , tpr
& tnr
являются , а не частью собственных метрик Keras;есть соответствующий поток Github , но проблема все еще остается открытой.
Но для двоичного случая, над которым вы, кажется, работаете, просто получить необходимые количества из scikit-learn (простовам нужно будет преобразовать результаты модели в двоичные метки, то есть , а не вероятности);адаптируя пример из документов :
from sklearn.metrics import confusion_matrix
y_true = [0, 1, 0, 1]
y_pred = [1, 1, 1, 0]
cm = confusion_matrix(y_true, y_pred) # careful with the order of arguments!
tn, fp, fn, tp = cm.ravel()
(tn, fp, fn, tp)
# (0, 2, 1, 1)
Получив эти величины, теперь легко вычислить TPR и TNR (см. определения в Wikipedia ):
TPR = tp/(tp+fn)
TPR
# 0.5
TNR = tn/(tn+fp)
TNR
# 0.0
Случай с несколькими классами немного сложнее - см. Мой ответ в Как получить точность, вызвать и f-меру из путаницы в Python .