def train(self, event): if self.train_f_name_tb.GetValue() != '': ffp = FaceFileParser() ffp.add_dir(self.train_f_name_tb.GetValue()) datalist = ffp.get_data() layers = int(self.train_numLayers_tb.GetValue()) nodes = int(self.train_numNodes_tb.GetValue()) epochs = int(self.train_numEpochs_tb.GetValue()) nettype = self.netbox.GetSelection() print layers print nodes print epochs print nettype if nettype == 0: fc = SupervisedFacialClassifier() if layers == 1: errorData = fc.alternateTrain(datalist, [(nodes)], epochs, 5) elif layers == 2: errorData = fc.alternateTrain(datalist, (nodes, nodes), epochs, 5) elif layers == 3: errorData = fc.alternateTrain(datalist, (nodes, nodes, nodes), epochs, 5) print 'ErrorData:\n' print errorData print '\n' for entry in errorData['training_error']: print entry else: fc = UnsupervisedFacialClassifier(2, 2) errorData = fc.train(datalist)
def train(self, event): if self.train_f_name_tb.GetValue() != '': ffp = FaceFileParser() ffp.add_dir(self.train_f_name_tb.GetValue()) datalist = ffp.get_data() layers = int(self.train_numLayers_tb.GetValue()) nodes = int(self.train_numNodes_tb.GetValue()) epochs = int(self.train_numEpochs_tb.GetValue()) nettype = self.netbox.GetSelection() print layers print nodes print epochs print nettype if nettype == 0: fc = SupervisedFacialClassifier() if layers == 1: errorData = fc.alternateTrain(datalist, [(nodes)], epochs, 5) elif layers == 2: errorData = fc.alternateTrain(datalist, (nodes,nodes), epochs, 5) elif layers == 3: errorData = fc.alternateTrain(datalist, (nodes,nodes,nodes), epochs, 5) print 'ErrorData:\n' print errorData print '\n' for entry in errorData['training_error']: print entry else: fc = UnsupervisedFacialClassifier(2,2) errorData = fc.train(datalist)
""" print "Single Hidden Layer" for i in range(2,20): fc = FacialClassifier() fc.alternateTrain(datalist, [(i)], 25) print "Double Hidden Layer" for i in range(2,20): fc = FacialClassifier() fc.alternateTrain(datalist, (i,i), 25) print "Triple Hidden Layer" for i in range(2,20): fc = FacialClassifier() fc.alternateTrain(datalist, (i,i,i), 25) """ fc = SupervisedFacialClassifier() # alternateTrain(datalist, hiddenNodes, #epochs, log stats every X epochs) fc.alternateTrain(datalist, (20, 20), 500, 10) """ #Test a single input file ffp2 = FaceFileParser() ffp2.add_file("c:\\face457b\\inputData\\in01.csv") datalist2 = ffp2.get_data() emo,data = datalist2[0] fc.classify(data) """
""" print "Single Hidden Layer" for i in range(2,20): fc = FacialClassifier() fc.alternateTrain(datalist, [(i)], 25) print "Double Hidden Layer" for i in range(2,20): fc = FacialClassifier() fc.alternateTrain(datalist, (i,i), 25) print "Triple Hidden Layer" for i in range(2,20): fc = FacialClassifier() fc.alternateTrain(datalist, (i,i,i), 25) """ fc = SupervisedFacialClassifier() # alternateTrain(datalist, hiddenNodes, #epochs, log stats every X epochs) fc.alternateTrain(datalist, (20,20), 500, 10); """ #Test a single input file ffp2 = FaceFileParser() ffp2.add_file("c:\\face457b\\inputData\\in01.csv") datalist2 = ffp2.get_data() emo,data = datalist2[0] fc.classify(data) """
step_size = 25 epochs = 750 output = 50 ffp = FaceFileParser() sfc = SupervisedFacialClassifier() ffp.add_dir('./normData') d_s = ffp.get_data() csv_out = open('./vary_topology.csv','w') csv_out.write('topology,min test error,at epoch,avg test error,avg train error\n') l1 = min_hn while l1 <= max_hn: print 'Topology :' + str(l1) + '\n' results = sfc.alternateTrain(d_s,[(l1)],epochs,logFreq=output) min_err = min(results['testing_error']) at_e = results['epochs'][results['testing_error'].index(min_err)] avg_tst = results['avg_testing_error'] avg_trn = results['avg_training_error'] csv_out.write(str(l1) + ';' + ',' + str(min_err) + ',' + str(at_e) + ',' + str(avg_tst) + ',' + str(avg_trn) + '\n') print 'Minimum error of ' + str(min_err) + ' at epoch ' + str(at_e) l2 = min_hn while l2 <= max_hn: print 'Topology :' + str(l1) + ';' + str(l2) + '\n' results = sfc.alternateTrain(d_s,(l1,l2),epochs,logFreq=output) min_err = min(results['testing_error']) at_e = results['testing_error'].index(min_err) avg_tst = results['avg_testing_error']