Ludovic PLATON

Fix models

nb_label 2
k 9
loss_type cross_entropy
......
nb_label 2
k 9
loss_type cross_entropy
......
nb_label 2
k 9
loss_type cross_entropy
......
nb_label 2
k 9
loss_type cross_entropy
......
nb_label 2
k 9
loss_type cross_entropy
......
nb_label 2
k 9
loss_type cross_entropy
......
-9.385425355283757431e-01 9.385428909124332586e-01
-8.245905442081006287e-01 8.245868110779478455e-01
1.506354362247568801e+00 -1.506354422782807623e+00
-8.966897450368520595e-01 8.966885905296639869e-01
-7.359716864356123933e-01 7.359695653336255639e-01
-8.973836099857436244e-01 8.973827087061271301e-01
-6.733239870313620923e-01 6.733260030121203110e-01
3.117922695462188809e+00 -3.117922475732808341e+00
-7.482786237648014760e-01 7.482774501668290057e-01
-2.925852261991522818e-01
1.305571465031842182e+00
nb_label 2
k 9
loss_type cross_entropy
This diff could not be displayed because it is too large.
TN 55888.0
Accuracy 0.9438484617002668
TP 29367.0
F1 0.920509043036705
Specificity 0.9671044662479018
FN 3171.0
Precision 0.9392030190610209
Sensitivity 0.9025447169463396
FP 1901.0
MCC 0.877544228517
......@@ -26,10 +26,6 @@ class SLSOM(object):
self.tf_object = som.tf_object
self.ulen = som.ulen
self.nb_label = nb_label
self.k = k
self.verbose=verbose
if self.k is None:
self.k = int(self.ulen / 2)
self.som = som
self.loss_type = loss_type
with self.tf_object.graph.as_default():
......@@ -43,25 +39,14 @@ class SLSOM(object):
self.it_max = tf.placeholder(tf.int32)
self.it = tf.Variable(0,dtype=tf.int32)
self.update_it = self.it.assign_add(1)
#self.data = tf.placeholder(tf.float64,shape=[None,self.ulen])
if self.k < self.som.ulen:
self.data = tf.map_fn(
lambda x: tf.where(x >= tf.nn.top_k(x,self.k,sorted=True)[0][-1], x, tf.zeros_like(x)),
self.som.sim2units(self.som.data2pred)
)
else:
self.data = self.som.sim2units(self.som.data2pred)
self.data = self.som.sim2units(self.som.data2pred)
# self.datapred = tf.map_fn(
# lambda x: tf.where(x >= tf.nn.top_k(x,4,sorted=True)[0][-1], x, tf.zeros_like(x)),
# self.data
# )
self.datapred = tf.one_hot(
self.som.bmu_finder(self.som.data2pred,self.som.units),
self.som.ulen,
dtype=tf.float64
) #* self.data
# self.datapred = self.data
)
self.data_size = tf.placeholder(tf.int32,shape=[1])
self.lambda_penality = tf.placeholder(tf.float64,shape=[1])
......@@ -74,8 +59,6 @@ class SLSOM(object):
def learning_rate(self,it):
return 1.0-tf.cast(self.it,tf.float64)/(tf.cast(self.it_max,tf.float64))
# def learning_rate(self,it):
# return tf.cast(self.it_max,tf.float64)/(tf.cast(self.it,tf.float64))
def save(self,path):
W = self.get_W()
......