Ludovic PLATON

Fix models

1 nb_label 2 1 nb_label 2
2 -k 9
3 loss_type cross_entropy 2 loss_type cross_entropy
......
1 nb_label 2 1 nb_label 2
2 -k 9
3 loss_type cross_entropy 2 loss_type cross_entropy
......
1 nb_label 2 1 nb_label 2
2 -k 9
3 loss_type cross_entropy 2 loss_type cross_entropy
......
1 nb_label 2 1 nb_label 2
2 -k 9
3 loss_type cross_entropy 2 loss_type cross_entropy
......
1 nb_label 2 1 nb_label 2
2 -k 9
3 loss_type cross_entropy 2 loss_type cross_entropy
......
1 nb_label 2 1 nb_label 2
2 -k 9
3 loss_type cross_entropy 2 loss_type cross_entropy
......
1 nb_label 2 1 nb_label 2
2 -k 9
3 loss_type cross_entropy 2 loss_type cross_entropy
......
1 --9.385425355283757431e-01 9.385428909124332586e-01
2 --8.245905442081006287e-01 8.245868110779478455e-01
3 -1.506354362247568801e+00 -1.506354422782807623e+00
4 --8.966897450368520595e-01 8.966885905296639869e-01
5 --7.359716864356123933e-01 7.359695653336255639e-01
6 --8.973836099857436244e-01 8.973827087061271301e-01
7 --6.733239870313620923e-01 6.733260030121203110e-01
8 -3.117922695462188809e+00 -3.117922475732808341e+00
9 --7.482786237648014760e-01 7.482774501668290057e-01
1 --2.925852261991522818e-01
2 -1.305571465031842182e+00
1 -nb_label 2
2 -k 9
3 -loss_type cross_entropy
This diff could not be displayed because it is too large.
1 -TN 55888.0
2 -Accuracy 0.9438484617002668
3 -TP 29367.0
4 -F1 0.920509043036705
5 -Specificity 0.9671044662479018
6 -FN 3171.0
7 -Precision 0.9392030190610209
8 -Sensitivity 0.9025447169463396
9 -FP 1901.0
10 -MCC 0.877544228517
...@@ -26,10 +26,6 @@ class SLSOM(object): ...@@ -26,10 +26,6 @@ class SLSOM(object):
26 self.tf_object = som.tf_object 26 self.tf_object = som.tf_object
27 self.ulen = som.ulen 27 self.ulen = som.ulen
28 self.nb_label = nb_label 28 self.nb_label = nb_label
29 - self.k = k
30 - self.verbose=verbose
31 - if self.k is None:
32 - self.k = int(self.ulen / 2)
33 self.som = som 29 self.som = som
34 self.loss_type = loss_type 30 self.loss_type = loss_type
35 with self.tf_object.graph.as_default(): 31 with self.tf_object.graph.as_default():
...@@ -43,25 +39,14 @@ class SLSOM(object): ...@@ -43,25 +39,14 @@ class SLSOM(object):
43 self.it_max = tf.placeholder(tf.int32) 39 self.it_max = tf.placeholder(tf.int32)
44 self.it = tf.Variable(0,dtype=tf.int32) 40 self.it = tf.Variable(0,dtype=tf.int32)
45 self.update_it = self.it.assign_add(1) 41 self.update_it = self.it.assign_add(1)
46 - #self.data = tf.placeholder(tf.float64,shape=[None,self.ulen])
47 - if self.k < self.som.ulen:
48 - self.data = tf.map_fn(
49 - lambda x: tf.where(x >= tf.nn.top_k(x,self.k,sorted=True)[0][-1], x, tf.zeros_like(x)),
50 - self.som.sim2units(self.som.data2pred)
51 - )
52 - else:
53 self.data = self.som.sim2units(self.som.data2pred) 42 self.data = self.som.sim2units(self.som.data2pred)
54 43
55 -# self.datapred = tf.map_fn( 44 +
56 -# lambda x: tf.where(x >= tf.nn.top_k(x,4,sorted=True)[0][-1], x, tf.zeros_like(x)),
57 -# self.data
58 -# )
59 self.datapred = tf.one_hot( 45 self.datapred = tf.one_hot(
60 self.som.bmu_finder(self.som.data2pred,self.som.units), 46 self.som.bmu_finder(self.som.data2pred,self.som.units),
61 self.som.ulen, 47 self.som.ulen,
62 dtype=tf.float64 48 dtype=tf.float64
63 - ) #* self.data 49 + )
64 -# self.datapred = self.data
65 50
66 self.data_size = tf.placeholder(tf.int32,shape=[1]) 51 self.data_size = tf.placeholder(tf.int32,shape=[1])
67 self.lambda_penality = tf.placeholder(tf.float64,shape=[1]) 52 self.lambda_penality = tf.placeholder(tf.float64,shape=[1])
...@@ -74,8 +59,6 @@ class SLSOM(object): ...@@ -74,8 +59,6 @@ class SLSOM(object):
74 59
75 def learning_rate(self,it): 60 def learning_rate(self,it):
76 return 1.0-tf.cast(self.it,tf.float64)/(tf.cast(self.it_max,tf.float64)) 61 return 1.0-tf.cast(self.it,tf.float64)/(tf.cast(self.it_max,tf.float64))
77 -# def learning_rate(self,it):
78 -# return tf.cast(self.it_max,tf.float64)/(tf.cast(self.it,tf.float64))
79 62
80 def save(self,path): 63 def save(self,path):
81 W = self.get_W() 64 W = self.get_W()
......