Example #1
0
class Anduril():

    def __init__(self):
        self.Net = NNet()
        return 
    
    def init(self,sconfig,classreg = 0, numcores = 1, gradd = 0, costfunc = 0):
        if (type(sconfig) == str) and (type(classreg) == int) and (type(numcores) == int) and (type(gradd) == int) and (type(costfunc) == int):
            self.Net.init(sconfig,classreg,numcores,gradd,costfunc)
        else:
            print "Invalid input, network not initailized"
            return

    def func_arch(self,flayer):
        if type(flayer) != str:
            print "flayer must be a string"
            return
        else:
            self.Net.func_arch(flayer)
        return

    def load(self,filename, mode = 0, sep1 = ",", sep2 = " "):
        if (type(filename) == str) and (type(mode) == int) and (type(sep1) == str) and (type(sep2) == str):
            self.Net.load(filename,mode,sep1,sep2)
            return
        else:
            print "Invalid input, files not loaded!"
            return

    def test_file(self,filename, netname = " ", sep1 = ",", sep2 = " "):
        if (type(filename) == str) and (type(netname) == str) and (type(sep1) == str) and (type(sep2) == str):
            self.Net.test_file(filename, netname, sep1, sep2)
            return
        else:
            print "Invalid input type!"
            return

    def error_stats(self, num_bins):
        if type(num_bins) != int:
            print "Please enter an integer for the number of bins"
            return
        self.Net.error_stats()
        f_train = open(".train","r")
        f_test = open(".test", "r")
        train_vals = []
        test_vals = []
        for line in f_train:
            train_vals.append(float(line))
        for line in f_test:
            test_vals.append(float(line))
        mean_train = np.mean(train_vals)
        std_train = np.std(train_vals)
        mean_test = np.mean(test_vals)
        std_test = np.std(test_vals)
        fig = plt.figure()
        ax1 = fig.add_subplot(2, 1, 1)
        ax2 = fig.add_subplot(2, 1, 2)
        ax1.hist(train_vals, bins=num_bins)
        ax1.set_title("Histogram on training error (Mean: " + str(mean_train) + "," + "Standard Deviation: " + str(std_train) + ")")
        ax1.set_xlabel("Error")
        ax1.set_ylabel("Number of points")
        ax2.hist(test_vals, bins=num_bins)
        ax2.set_title("Histogram on test error (Mean: " +str(mean_test) + "," + "Standard Deviation: " + str(std_test) + ")")
        ax2.set_xlabel("Error")
        ax2.set_ylabel("Number of points")
        plt.show()
        return

    def train_net(self,epoch,lrate, mode = 1, verbose = 0, logfile = " "):
        if (type(epoch) == int) and (type(lrate) == float) and (type(mode) == int) and (type(verbose) == int) and (type(logfile) == str):
            if (mode < 0) or (mode > 1):
                print "The mode must be either 0 or 1"
                return
            if (verbose < 0) or (verbose > 1):
                print "Verbose must either be 0 or 1"
                return
            self.Net.train_net(epoch,lrate,mode,verbose,logfile)
            return
        else:
            print "Invalid input, network not trained!"
            return

    def train_rprop(self,epoch, mode = 1, verbose = 0, logfile = " ", tmax = 1.0):
        if  (type(epoch) == int) and (type(mode) == int) and (type(verbose) == int) and (type(logfile) == str) and (type(tmax) == float):
            if (mode < 0) or (mode > 1):
                print "The mode must be either 0 or 1"
                return
            if (verbose < 0) or (verbose > 1):
                print "Verbose must either be 0 or 1"
                return
            self.Net.train_rprop(epoch,mode,verbose,logfile,tmax)
            return
        else:
            print "Invalid input, network not trained!"
            return

    def d_trainrprop(self,mode = 1, verbose = 0, logfile = " ", tmax = 1.0):
        if (type(mode) == int) and (type(verbose) == int) and (type(logfile) == str) and (type(tmax) == float):
            if (mode < 0) or (mode > 1):
                print "The mode must be either 0 or 1"
                return
            if (verbose < 0) or (verbose > 1):
                print "Verbose must either be 0 or 1"
                return
            self.Net.d_trainrprop(mode,verbose,logfile,tmax)
            return
        else:
            print "Invalid input, network not trained!"
            return

    def test_net(self,verbose = 0):
        if (type(verbose) == int):
            if (verbose != 0) or (verbose != 1):
                print "Verbose must either be 0 or 1"
                return
            self.Net.test_net(verbose)
            return
        else:
            print "Invalid input!"
            return

    def savenet(self,netname):
        if (type(netname) == str):
            self.Net.savenet(netname)
            return
        else:
            print "Invalid input, netname must be a string!"
            return

    def loadnet(self,netname):
        if (type(netname) == str):
            self.Net.loadnet(netname)
            return
        else:
            print "Invalid input, netname must be a string!"
            return

    def snets(self):
        self.Net.snets()
        return

    
             
Example #2
0
class Anduril():

    def __init__(self):
        self.Net = NNet()
        return 
    
    def init(self,sconfig,classreg = 0, numcores = 1, gradd = 0, costfunc = 0):
        if (type(sconfig) == str) and (type(classreg) == int) and (type(numcores) == int) and (type(gradd) == int) and (type(costfunc) == int):
            self.Net.init(sconfig,classreg,numcores,gradd,costfunc)
        else:
            print "Invalid input, network not initailized"
            return

    def func_arch(self,flayer):
        if type(flayer) != str:
            print "flayer must be a string"
            return
        else:
            self.Net.func_arch(flayer)
        return

    def load(self,filename, mode = 0, sep1 = ",", sep2 = " "):
        if (type(filename) == str) and (type(mode) == int) and (type(sep1) == str) and (type(sep2) == str):
            self.Net.load(filename,mode,sep1,sep2)
            return
        else:
            print "Invalid input, files not loaded!"
            return

    def test_file(self,filename, netname = " ", sep1 = ",", sep2 = " "):
        if (type(filename) == str) and (type(netname) == str) and (type(sep1) == str) and (type(sep2) == str):
            self.Net.test_file(filename, netname, sep1, sep2)
            return
        else:
            print "Invalid input type!"
            return

    def error_stats(self, num_bins):
        if type(num_bins) != int:
            print "Please enter an integer for the number of bins"
            return
        self.Net.error_stats()
        f_train = open(".train","r")
        f_test = open(".test", "r")
        train_vals = []
        test_vals = []
        for line in f_train:
            train_vals.append(float(line))
        for line in f_test:
            test_vals.append(float(line))
        mean_train = np.mean(train_vals)
        std_train = np.std(train_vals)
        mean_test = np.mean(test_vals)
        std_test = np.std(test_vals)
        fig = plt.figure()
        ax1 = fig.add_subplot(2, 1, 1)
        ax2 = fig.add_subplot(2, 1, 2)
        ax1.hist(train_vals, bins=num_bins)
        ax1.set_title("Histogram on training error (Mean: " + str(mean_train) + "," + "Standard Deviation: " + str(std_train) + ")")
        ax1.set_xlabel("Error")
        ax1.set_ylabel("Number of points")
        ax2.hist(test_vals, bins=num_bins)
        ax2.set_title("Histogram on test error (Mean: " +str(mean_test) + "," + "Standard Deviation: " + str(std_test) + ")")
        ax2.set_xlabel("Error")
        ax2.set_ylabel("Number of points")
        plt.show()
        return

    def train_net(self,epoch,lrate, mode = 1, verbose = 0, logfile = " "):
        if (type(epoch) == int) and (type(lrate) == float) and (type(mode) == int) and (type(verbose) == int) and (type(logfile) == str):
            if (mode < 0) or (mode > 1):
                print "The mode must be either 0 or 1"
                return
            if (verbose < 0) or (verbose > 1):
                print "Verbose must either be 0 or 1"
                return
            self.Net.train_net(epoch,lrate,mode,verbose,logfile)
            return
        else:
            print "Invalid input, network not trained!"
            return

    def train_rprop(self,epoch, mode = 1, verbose = 0, logfile = " ", tmax = 1.0):
        if  (type(epoch) == int) and (type(mode) == int) and (type(verbose) == int) and (type(logfile) == str) and (type(tmax) == float):
            if (mode < 0) or (mode > 1):
                print "The mode must be either 0 or 1"
                return
            if (verbose < 0) or (verbose > 1):
                print "Verbose must either be 0 or 1"
                return
            self.Net.train_rprop(epoch,mode,verbose,logfile,tmax)
            return
        else:
            print "Invalid input, network not trained!"
            return

    def d_trainrprop(self,mode = 1, verbose = 0, logfile = " ", tmax = 1.0):
        if (type(mode) == int) and (type(verbose) == int) and (type(logfile) == str) and (type(tmax) == float):
            if (mode < 0) or (mode > 1):
                print "The mode must be either 0 or 1"
                return
            if (verbose < 0) or (verbose > 1):
                print "Verbose must either be 0 or 1"
                return
            self.Net.d_trainrprop(mode,verbose,logfile,tmax)
            return
        else:
            print "Invalid input, network not trained!"
            return

    def test_net(self,verbose = 0):
        if (type(verbose) == int):
            if (verbose != 0) or (verbose != 1):
                print "Verbose must either be 0 or 1"
                return
            self.Net.test_net(verbose)
            return
        else:
            print "Invalid input!"
            return

    def savenet(self,netname):
        if (type(netname) == str):
            self.Net.savenet(netname)
            return
        else:
            print "Invalid input, netname must be a string!"
            return

    def loadnet(self,netname):
        if (type(netname) == str):
            self.Net.loadnet(netname)
            return
        else:
            print "Invalid input, netname must be a string!"
            return

    def snets(self):
        self.Net.snets()
        return