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 ...@@ -8,8 +8,7 @@ import numpy as np
import pickle import pickle
import h5py import h5py
from icing.pirep_goes import split_data, normalize from icing.pirep_goes import normalize
from util.plot_cm import plot_confusion_matrix
LOG_DEVICE_PLACEMENT = False LOG_DEVICE_PLACEMENT = False
...@@ -151,6 +150,10 @@ class IcingIntensityNN: ...@@ -151,6 +150,10 @@ class IcingIntensityNN:
self.test_recall = None self.test_recall = None
self.test_precision = None self.test_precision = None
self.test_confusion_matrix = 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_labels = []
self.test_preds = [] self.test_preds = []
...@@ -479,12 +482,20 @@ class IcingIntensityNN: ...@@ -479,12 +482,20 @@ class IcingIntensityNN:
self.test_auc = tf.keras.metrics.AUC(name='test_auc') self.test_auc = tf.keras.metrics.AUC(name='test_auc')
self.test_recall = tf.keras.metrics.Recall(name='test_recall') self.test_recall = tf.keras.metrics.Recall(name='test_recall')
self.test_precision = tf.keras.metrics.Precision(name='test_precision') 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: else:
self.train_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='train_accuracy') self.train_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='train_accuracy')
self.test_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='test_accuracy') self.test_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='test_accuracy')
self.test_auc = tf.keras.metrics.AUC(name='test_auc') self.test_auc = tf.keras.metrics.AUC(name='test_auc')
self.test_recall = tf.keras.metrics.Recall(name='test_recall') self.test_recall = tf.keras.metrics.Recall(name='test_recall')
self.test_precision = tf.keras.metrics.Precision(name='test_precision') 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): def build_predict(self):
_, pred = tf.nn.top_k(self.logits) _, pred = tf.nn.top_k(self.logits)
...@@ -526,6 +537,10 @@ class IcingIntensityNN: ...@@ -526,6 +537,10 @@ class IcingIntensityNN:
self.test_auc(labels, pred) self.test_auc(labels, pred)
self.test_recall(labels, pred) self.test_recall(labels, pred)
self.test_precision(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): def predict(self, mini_batch):
inputs = [mini_batch[0]] inputs = [mini_batch[0]]
...@@ -541,6 +556,10 @@ class IcingIntensityNN: ...@@ -541,6 +556,10 @@ class IcingIntensityNN:
self.test_auc(labels, pred) self.test_auc(labels, pred)
self.test_recall(labels, pred) self.test_recall(labels, pred)
self.test_precision(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): def do_training(self, ckpt_dir=None):
...@@ -587,6 +606,10 @@ class IcingIntensityNN: ...@@ -587,6 +606,10 @@ class IcingIntensityNN:
self.test_auc.reset_states() self.test_auc.reset_states()
self.test_recall.reset_states() self.test_recall.reset_states()
self.test_precision.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: for data0_tst, label_tst in self.test_dataset:
tst_ds = tf.data.Dataset.from_tensor_slices((data0_tst, label_tst)) tst_ds = tf.data.Dataset.from_tensor_slices((data0_tst, label_tst))
...@@ -621,6 +644,10 @@ class IcingIntensityNN: ...@@ -621,6 +644,10 @@ class IcingIntensityNN:
self.test_auc.reset_states() self.test_auc.reset_states()
self.test_recall.reset_states() self.test_recall.reset_states()
self.test_precision.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: for data0, label in self.test_dataset:
ds = tf.data.Dataset.from_tensor_slices((data0, label)) ds = tf.data.Dataset.from_tensor_slices((data0, label))
...@@ -632,8 +659,15 @@ class IcingIntensityNN: ...@@ -632,8 +659,15 @@ class IcingIntensityNN:
precsn = self.test_precision.result().numpy() precsn = self.test_precision.result().numpy()
f1 = 2 * (precsn * recall) / (precsn + recall) f1 = 2 * (precsn * recall) / (precsn + recall)
print('loss, acc, recall, precision, auc, f1: ', self.test_loss.result().numpy(), self.test_accuracy.result().numpy(), tn = self.test_true_neg.result().numpy()
recall, precsn, self.test_auc.result().numpy(), f1) 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('--------------------------------------------------') print('--------------------------------------------------')
ckpt_manager.save() 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