-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtpr_fpr.py
More file actions
74 lines (64 loc) · 2.27 KB
/
tpr_fpr.py
File metadata and controls
74 lines (64 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import tensorflow as tf
import numpy as np
global classnumber,tpr, fpr, tpfp
def tpr_fpr_init(num_class):
global tpr, fpr, tpfp, classnumber
classnumber = num_class
tpr = np.zeros(classnumber, dtype=np.float32)
fpr = np.zeros(classnumber, dtype=np.float32)
tpfp = np.zeros((classnumber, classnumber), dtype=np.uint16)
return tpr,fpr,tpfp,classnumber
def tpr_fpr_argmax(pred,label):
argmaxlist = []
predvalue = tf.argmax(pred,1)
labelvalue = tf.argmax(label,1)
argmaxlist.append(predvalue)
argmaxlist.append(labelvalue)
return argmaxlist
def tpr_fpr_statistics(argmaxlist):
global tpr, fpr, tpfp
predvalue = argmaxlist[0]
labelvalue = argmaxlist[1]
for (i, j) in zip(labelvalue, predvalue):
tpfp[i][j] += 1
return tpfp
def tpr_fpr_compute():
global tpr, fpr, tpfp,classnumber
for k in np.arange(classnumber):
tpr[k] = (tpfp[k][k]*1.0)/(tpfp[k].sum())
fpr[k] = ((tpfp[:,k].sum()-tpfp[k][k])*1.0)/(tpfp.sum()-tpfp[k].sum())
return tpr,fpr
'''
def tpr_fpr(pred,label,num_class,init=True):
if init:
tpr_fpr_init(num_class)
tpr_fpr_statistics(pred,label)
return tpr_fpr_compute()
if __name__ == '__main__':
global tpr, fpr, tpfp, classnumber
pred = np.array([[1, 0, 0], [1, 0, 0], [0, 1, 0],
[0, 1, 0], [0, 1, 0], [0, 0, 1],
[0, 0, 1 ],[0, 0, 1],[1, 0, 0],[0, 1, 0]])
label = np.array([[1, 0, 0], [1, 0, 0], [1, 0, 0],
[0, 1, 0], [0, 1, 0], [0, 1, 0],
[0, 0, 1 ],[0, 0, 1],[0, 0, 1],[0, 0, 1]])
classnumber = 3
tpr_fpr_init(classnumber)
argmax = tpr_fpr_argmax(pred,label)
x = tf.placeholder("float", [10, 3])
y = tf.placeholder("float", [10, 3])
sess = tf.Session()
argmaxlist = sess.run(argmax, feed_dict={x:pred,y:label})
tpr_fpr_statistics(argmaxlist)
tpr_fpr_statistics(argmaxlist)
tpr_fpr_compute()
print tpfp
for i in np.arange(classnumber):
print ('TPR%s = %s,FPR%s = %s' % (i, tpr[i], i, fpr[i]))
'''
'''
tpr_fpr(pred, label, init=True)
print tpfp
for i in np.arange(classnumber):
print ('TPR%s = %s,FPR%s = %s' % (i,tpr[i],i,fpr[i]))
'''