From 20a8cfd6cb2251b4d6c9f46f7128869704a4a5ba Mon Sep 17 00:00:00 2001
From: Hashim Sharif <hsharif3@miranda.cs.illinois.edu>
Date: Tue, 16 Mar 2021 17:35:01 -0500
Subject: [PATCH] Fixed recursive directory creation

---
 .../keras/frontend/approxhpvm_translator.py   | 26 ++++++++++++-------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/hpvm/projects/keras/frontend/approxhpvm_translator.py b/hpvm/projects/keras/frontend/approxhpvm_translator.py
index ff75415a0f..7515bf67da 100644
--- a/hpvm/projects/keras/frontend/approxhpvm_translator.py
+++ b/hpvm/projects/keras/frontend/approxhpvm_translator.py
@@ -521,17 +521,16 @@ class TensorRtTranslator:
       activation_type = cur_node.activation_type
       out_var_name3 = self.getVariableName(cur_node)    
 
-      inst_str = genActivationCallStr(out_var_name1, out_var_name3, activation_type)
-      self.program_str += inst_str  
-
       if activation_type == "softmax":
         print ("Softmax canNOT be part of Dense/Conv Op. Insert: Activation('softmax');")
         sys.exit(0)
+        
+      inst_str = genActivationCallStr(out_var_name1, out_var_name3, activation_type)
+      self.program_str += inst_str  
 
-      #self.json_str += activation_type + "_" + str(self.op_count) + " : 0, \n"
-      #self.op_count += 1
       self.addBaselineKnob(activation_type)
-      
+
+        
 
     if layer_type == "BatchNormalization":
       input_var_name = self.getSingleInputName(cur_node)
@@ -1074,6 +1073,15 @@ def getUniquePath(weights_dir):
   
 
 
+def createRecursiveDir(target_dir):
+
+  toks = target_dir.split("/")
+  for i in range(len(toks)):
+    path_str = "/".join(toks[0:i+1])
+    if not os.path.exists(path_str):
+      os.mkdir(path_str)
+  
+
 
 #***** Top level External Function ******* 
 def translate_to_approxhpvm(model,
@@ -1088,10 +1096,11 @@ def translate_to_approxhpvm(model,
 
   if not reload_weights:
     weights_dir = getUniquePath(weights_dir)
-    os.mkdir(weights_dir)   
+    createRecursiveDir(weights_dir)
+    
 
   src_dir = getUniquePath(src_dir)
-  os.mkdir(src_dir)   
+  createRecursiveDir(src_dir)
     
   dfg = DFG()    
   for i in range(len(model.layers)):
@@ -1122,7 +1131,6 @@ def translate_to_approxhpvm(model,
 
   
   
-  
   if reload_weights:
     print ("NOTE: Using existing pretrained weights \n")
   else:
-- 
GitLab