Diff of /src/networkTraining.py [000000] .. [e9ece0]

Switch to side-by-side view

--- a
+++ b/src/networkTraining.py
@@ -0,0 +1,82 @@
+""" 
+Copyright (c) 2016, Jose Dolz .All rights reserved.
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+    1. Redistributions of source code must retain the above copyright notice,
+       this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright notice,
+       this list of conditions and the following disclaimer in the documentation
+       and/or other materials provided with the distribution.
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+    OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+    HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+    WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+    OTHER DEALINGS IN THE SOFTWARE.
+Jose Dolz. Dec, 2016.
+email: jose.dolz.upv@gmail.com
+LIVIA Department, ETS, Montreal.
+"""
+
+import sys
+import pdb
+import numpy
+
+from LiviaNet.generateNetwork import generateNetwork
+from LiviaNet.startTraining import startTraining
+
+""" To print function usage """
+def printUsage(error_type):
+    if error_type == 1:
+        print(" ** ERROR!!: Few parameters used.")
+    else:
+        print(" ** ERROR!!: Asked to start with an already created network but its name is not specified.")
+        
+    print(" ******** USAGE ******** ")
+    print(" --- argv 1: Name of the configIni file.")
+    print(" --- argv 2: Type of training:")
+    print(" ------------- 0: Create a new model and start training")
+    print(" ------------- 1: Use an existing model to keep on training (Requires an additional input with model name)")
+    print(" --- argv 3: (Optional, but required if arg 2 is equal to 1) Network model name")
+
+
+def networkTraining(argv):
+    # Number of input arguments
+    #    1: ConfigIniName
+    #    2: TrainingType
+    #             0: Create a new model and start training
+    #             1: Use an existing model to keep on training (Requires an additional input with model name)
+    #    3: (Optional, but required if arg 2 is equal to 1) Network model name
+   
+    # Do some sanity checks
+    
+    if len(argv) < 2:
+        printUsage(1)
+        sys.exit()
+    
+    configIniName = argv[0]
+    trainingType  = argv[1]
+    
+    if trainingType == '1' and len(argv) == 2:
+        printUsage(2)
+        sys.exit()
+        
+    if len(argv)>2:
+        networkModelName = argv[2]
+   
+    # Creating a new model 
+    if trainingType == '0':
+        print " ******************************************  CREATING NETWORK ******************************************"
+        networkModelName = generateNetwork(configIniName)
+        print " ******************************************  NETWORK CREATED ******************************************"
+
+    # Training the network in model name
+    print " ******************************************  STARTING NETWORK TRAINING ******************************************"
+    startTraining(networkModelName,configIniName)
+    print " ******************************************  DONE  ******************************************"
+  
+   
+if __name__ == '__main__':
+   networkTraining(sys.argv[1:])