Skip to content
Snippets Groups Projects
Commit 0b8ac3cc authored by tomrink's avatar tomrink
Browse files

minor...

parent fd099da6
No related branches found
No related tags found
No related merge requests found
......@@ -8,8 +8,7 @@ import numpy as np
import pickle
import h5py
from icing.pirep_goes import split_data, normalize
from util.plot_cm import plot_confusion_matrix
from icing.pirep_goes import normalize
LOG_DEVICE_PLACEMENT = False
......@@ -151,6 +150,10 @@ class IcingIntensityNN:
self.test_recall = None
self.test_precision = None
self.test_confusion_matrix = None
self.test_true_pos = None
self.test_true_neg = None
self.test_false_pos = None
self.test_false_neg = None
self.test_labels = []
self.test_preds = []
......@@ -479,12 +482,20 @@ class IcingIntensityNN:
self.test_auc = tf.keras.metrics.AUC(name='test_auc')
self.test_recall = tf.keras.metrics.Recall(name='test_recall')
self.test_precision = tf.keras.metrics.Precision(name='test_precision')
self.test_true_neg = tf.keras.metrics.TrueNegatives(name='test_true_neg')
self.test_true_pos = tf.keras.metrics.TrueNegatives(name='test_true_pos')
self.test_false_neg = tf.keras.metrics.FalseNegatives(name='test_false_neg')
self.test_false_pos = tf.keras.metrics.FalsePositives(name='test_false_pos')
else:
self.train_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='train_accuracy')
self.test_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='test_accuracy')
self.test_auc = tf.keras.metrics.AUC(name='test_auc')
self.test_recall = tf.keras.metrics.Recall(name='test_recall')
self.test_precision = tf.keras.metrics.Precision(name='test_precision')
self.test_true_neg = tf.keras.metrics.TrueNegatives(name='test_true_neg')
self.test_true_pos = tf.keras.metrics.TrueNegatives(name='test_true_pos')
self.test_false_neg = tf.keras.metrics.FalseNegatives(name='test_false_neg')
self.test_false_pos = tf.keras.metrics.FalsePositives(name='test_false_pos')
def build_predict(self):
_, pred = tf.nn.top_k(self.logits)
......@@ -526,6 +537,10 @@ class IcingIntensityNN:
self.test_auc(labels, pred)
self.test_recall(labels, pred)
self.test_precision(labels, pred)
self.test_true_neg(labels, pred)
self.test_true_pos(labels, pred)
self.test_false_neg(labels, pred)
self.test_false_pos(labels, pred)
def predict(self, mini_batch):
inputs = [mini_batch[0]]
......@@ -541,6 +556,10 @@ class IcingIntensityNN:
self.test_auc(labels, pred)
self.test_recall(labels, pred)
self.test_precision(labels, pred)
self.test_true_neg(labels, pred)
self.test_true_pos(labels, pred)
self.test_false_neg(labels, pred)
self.test_false_pos(labels, pred)
def do_training(self, ckpt_dir=None):
......@@ -587,6 +606,10 @@ class IcingIntensityNN:
self.test_auc.reset_states()
self.test_recall.reset_states()
self.test_precision.reset_states()
self.test_true_neg.reset_states()
self.test_true_pos.reset_states()
self.test_false_neg.reset_states()
self.test_false_pos.reset_states()
for data0_tst, label_tst in self.test_dataset:
tst_ds = tf.data.Dataset.from_tensor_slices((data0_tst, label_tst))
......@@ -621,6 +644,10 @@ class IcingIntensityNN:
self.test_auc.reset_states()
self.test_recall.reset_states()
self.test_precision.reset_states()
self.test_true_neg.reset_states()
self.test_true_pos.reset_states()
self.test_false_neg.reset_states()
self.test_false_pos.reset_states()
for data0, label in self.test_dataset:
ds = tf.data.Dataset.from_tensor_slices((data0, label))
......@@ -632,8 +659,15 @@ class IcingIntensityNN:
precsn = self.test_precision.result().numpy()
f1 = 2 * (precsn * recall) / (precsn + recall)
print('loss, acc, recall, precision, auc, f1: ', self.test_loss.result().numpy(), self.test_accuracy.result().numpy(),
recall, precsn, self.test_auc.result().numpy(), f1)
tn = self.test_true_neg.result().numpy()
tp = self.test_true_pos.result().numpy()
fn = self.test_false_neg.result().numpy()
fp = self.test_false_pos.result().numpy()
mcc = (tp*tn) - (fp*fn) / np.sqrt((tp+fp)*(tp+fn)*(tn+fp)*(tn+fn))
print('loss, acc, recall, precision, auc, f1, mcc: ', self.test_loss.result().numpy(), self.test_accuracy.result().numpy(),
recall, precsn, self.test_auc.result().numpy(), f1, mcc)
print('--------------------------------------------------')
ckpt_manager.save()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment