diff --git a/modules/deeplearning/icing_cnn.py b/modules/deeplearning/icing_cnn.py
index 386cf74984229e966b27f8d58e541de69e85bfc3..5409e32c613073c355a03d1f10e8249d66df6c68 100644
--- a/modules/deeplearning/icing_cnn.py
+++ b/modules/deeplearning/icing_cnn.py
@@ -148,6 +148,7 @@ class IcingIntensityNN:
         self.test_loss = None
         self.test_accuracy = None
         self.test_auc = None
+        self.test_f1 = None
         self.test_recall = None
         self.test_precision = None
         self.test_confusion_matrix = None
@@ -462,12 +463,14 @@ class IcingIntensityNN:
             self.train_accuracy = tf.keras.metrics.BinaryAccuracy(name='train_accuracy')
             self.test_accuracy = tf.keras.metrics.BinaryAccuracy(name='test_accuracy')
             self.test_auc = tf.keras.metrics.AUC(name='test_auc')
+            self.test_f1 = tfa.metrics.F1Score(name='test_f1')
             self.test_recall = tf.keras.metrics.Recall(name='test_recall')
             self.test_precision = tf.keras.metrics.Precision(name='test_precision')
         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_f1 = tfa.metrics.F1Score(name='f1_score')
             self.test_recall = tf.keras.metrics.Recall(name='test_recall')
             self.test_precision = tf.keras.metrics.Precision(name='test_precision')
 
@@ -509,6 +512,7 @@ class IcingIntensityNN:
         self.test_accuracy(labels, pred)
         if NumClasses == 2:
             self.test_auc(labels, pred)
+            self.test_f1(labels, pred)
             self.test_recall(labels, pred)
             self.test_precision(labels, pred)
 
@@ -524,6 +528,7 @@ class IcingIntensityNN:
         self.test_loss(t_loss)
         self.test_accuracy(labels, pred)
         self.test_auc(labels, pred)
+        self.test_f1(labels, pred)
         self.test_recall(labels, pred)
         self.test_precision(labels, pred)
 
@@ -580,6 +585,7 @@ class IcingIntensityNN:
                             tf.summary.scalar('loss_val', self.test_loss.result(), step=step)
                             tf.summary.scalar('acc_val', self.test_accuracy.result(), step=step)
                             tf.summary.scalar('auc_val', self.test_auc.result(), step=step)
+                            tf.summary.scalar('f1_val', self.test_f1.result(), step=step)
                             tf.summary.scalar('recall_val', self.test_recall.result(), step=step)
                             tf.summary.scalar('prec_val', self.test_precision.result(), step=step)
                             tf.summary.scalar('num_train_steps', step, step=step)
@@ -601,6 +607,7 @@ class IcingIntensityNN:
             self.test_loss.reset_states()
             self.test_accuracy.reset_states()
             self.test_auc.reset_states()
+            self.test_f1.reset_states()
             self.test_recall.reset_states()
             self.test_precision.reset_states()
 
@@ -611,7 +618,7 @@ class IcingIntensityNN:
                     self.test_step(mini_batch)
 
             print('loss, acc, auc, recall, precision: ', self.test_loss.result().numpy(), self.test_accuracy.result().numpy(),
-                  self.test_auc.result().numpy(), self.test_recall.result().numpy(), self.test_precision.result().numpy())
+                  self.test_auc.result().numpy(), self.test_f1.result().numpy(), self.test_recall.result().numpy(), self.test_precision.result().numpy())
             print('--------------------------------------------------')
             ckpt_manager.save()