From e124067431c67a0828cbc1d11986cb600954af7e Mon Sep 17 00:00:00 2001
From: tomrink <rink@ssec.wisc.edu>
Date: Fri, 7 May 2021 13:09:34 -0500
Subject: [PATCH] snapshot...

---
 modules/deeplearning/icing_cnn.py | 35 ++++++++++++++++++++-----------
 1 file changed, 23 insertions(+), 12 deletions(-)

diff --git a/modules/deeplearning/icing_cnn.py b/modules/deeplearning/icing_cnn.py
index 480801f2..f771dd28 100644
--- a/modules/deeplearning/icing_cnn.py
+++ b/modules/deeplearning/icing_cnn.py
@@ -104,8 +104,10 @@ class IcingIntensityNN:
         self.handle = None
         self.inner_handle = None
         self.in_mem_batch = None
-        self.filename = None
-        self.h5f = None
+        self.filename_trn = None
+        self.h5f_trn = None
+        self.filename_tst = None
+        self.h5f_tst = None
         self.h5f_l1b = None
 
         self.logits = None
@@ -266,13 +268,22 @@ class IcingIntensityNN:
         dataset = dataset.map(self.data_function, num_parallel_calls=8)
         self.test_dataset = dataset
 
-    def setup_pipeline(self, filename, trn_idxs=None, tst_idxs=None, seed=None):
-        self.filename = filename
-        self.h5f = h5py.File(filename, 'r')
-        if trn_idxs is None and tst_idxs is None:
-            time = self.h5f['time']
-            num_obs = time.shape[0]
-            trn_idxs, tst_idxs = split_data(num_obs, seed=seed)
+    def setup_pipeline(self, filename_trn, filename_tst, trn_idxs=None, tst_idxs=None, seed=None):
+        self.filename_trn = filename_trn
+        self.h5f_trn = h5py.File(filename_trn, 'r')
+
+        self.filename_tst = filename_tst
+        self.h5f_tst = h5py.File(filename_tst, 'r')
+
+        if trn_idxs is None:
+            time = self.h5f_trn['time']
+            trn_idxs = np.arange(time.shape[0])
+            np.random.shuffle(trn_idxs)
+
+            time = self.h5f_tst['time']
+            tst_idxs = np.arange(time.shape[0])
+            np.random.shuffle(tst_idxs)
+
         self.num_data_samples = trn_idxs.shape[0]
 
         self.get_train_dataset(trn_idxs)
@@ -406,7 +417,7 @@ class IcingIntensityNN:
         else:
             activation = tf.nn.softmax  # For multi-class
 
-        # Called logits, but these are actually probabilities see activation
+        # Called logits, but these are actually probabilities, see activation
         logits = tf.keras.layers.Dense(NumLogits, activation=activation)(fc)
         print(logits.shape)
         
@@ -643,9 +654,9 @@ class IcingIntensityNN:
         self.test_labels = labels
         self.test_preds = preds
 
-    def run(self, filename, filename_l1b=None):
+    def run(self, filename_trn, filename_tst, filename_l1b=None):
         with tf.device('/device:GPU:'+str(self.gpu_device)):
-            self.setup_pipeline(filename)
+            self.setup_pipeline(filename_trn, filename_tst)
             self.build_model()
             self.build_training()
             self.build_evaluation()
-- 
GitLab