# totNumSamples = 67553 numTrainBatches = data[0].get_value(borrow=True).shape[0] / batchSize numEpochs = int(patience / numTrainBatches) * 15 hyperparameters["optAlg"] = optAlgs[1] errorDict = {} AUCDict = {} mlp = initalizeModel(**hyperparameters) score = trainWithEarlyStopping( mlp, numEpochs, patience, validationFrequency, data, variables, batchSize, errorDict, AUCDict, name=modelName, visualize=True, ) print "Score:", score print "Max valAUC:", max(AUCDict["valAUC"]) plt.ioff() fig1 = plt.figure(1) fig1.canvas.set_window_title("Error/Epochs") plt.title("Error/Epochs " + hyperparameters["optAlg"])
if 'lambda1' in hyperparameters: modelName += "%.2fL1" % hyperparameters['lambda1'] if 'lambda2' in hyperparameters: modelName += "%.2fL2" % hyperparameters['lambda2'] if 'rho' in hyperparameters: modelName += "%.2fRHO" % hyperparameters['rho'] if 'epsilon' in hyperparameters: modelName += "%gEPS" % hyperparameters['epsilon'] print "Model name: " + modelName rng = np.random.RandomState(123) hyperparameters["rng"] = rng variables = ['FlightDistance','FlightDistanceError', 'LifeTime', 'VertexChi2','pt','dira','DOCAone', 'DOCAtwo','DOCAthree','IP_p0p2','IP_p1p2', 'isolationa', 'isolationb', 'isolationd', 'isolatione', 'isolationf', 'iso', 'CDF1', 'CDF2', 'CDF3', 'ISO_SumBDT', 'p0_IsoBDT', 'p1_IsoBDT', 'p2_IsoBDT', 'p0_track_Chi2Dof','p1_track_Chi2Dof', 'p2_track_Chi2Dof','p0_pt','p0_p','p0_eta', 'p0_IP','p0_IPSig','p1_pt','p1_p', 'p1_eta','p1_IP','p1_IPSig','p2_pt','p2_p','p2_eta','p2_IP', 'p2_IPSig'] if np.round(hyperparameters.pop('SPDhits')): variables += ['SPDhits'] if np.round(hyperparameters.pop('isolationc')): variables += ['isolationc'] if np.round(hyperparameters.pop('IPSig')): variables += ['IPSig'] if np.round(hyperparameters.pop('IP')): variables += ['IP'] hyperparameters["numFeatures"] = len(variables) optAlgs = ["RMSProp", "adaDelta", "vSGDfd"] hyperparameters["optAlg"] = optAlgs[1] mlp = initalizeModel(**hyperparameters) mlp.loadModel("", folder, verbose = True) data = loadTrainingData(variables, rng, valPart = 0.3, verbose = True) optAlgs = ["RMSProp", "adaDelta", "vSGDfd"] patience = 12000 validationFrequency = 1 batchSize = int(data[0].get_value(borrow=True).shape[0] / 6.) #5000 #300 numTrainBatches = data[0].get_value(borrow=True).shape[0] / batchSize numEpochs = int(patience / numTrainBatches) * 15 trainWithEarlyStopping(mlp, numEpochs, patience, validationFrequency, data, variables, batchSize, name = modelName)