def main(): train, val = getData() train_errs = [] val_errs = [] for hiddensize in range(10, 100, 5): net = buildNetwork(39, hiddensize, 1, hiddenclass=SigmoidLayer, outclass=SigmoidLayer) trainer = BackpropTrainer(net, train) for i in range(20): trainer.train() verr = ModuleValidator.MSE(net, val) print hiddensize, ": ", verr val_errs.append(verr) train_errs.append(trainer.train()) return (train_errs, val_errs)
trainer = ReinforcedTrainer(module=nn, rewarder=rewardFunc) from pybrain.tools.validation import ModuleValidator import thread def userthread(): from IPython.Shell import IPShellEmbed ipshell = IPShellEmbed() ipshell() #thread.start_new_thread(userthread, ()) # carry out the training while True: trndata = generateData(nseq=20, ratevarlimit=random.uniform(0.0, 0.3)) tstdata = generateData(nseq=20) trainer.setData(trndata) trainer.train() trnresult = 100. * (ModuleValidator.MSE(nn, trndata)) tstresult = 100. * (ModuleValidator.MSE(nn, tstdata)) print "train error: %5.2f%%" % trnresult, ", test error: %5.2f%%" % tstresult s = getRandomSeq(100, ratevarlimit=random.uniform(0.0, 1.0)) print " real:", seqStr(s) print " nn:", getSeqOutputFromNN(nn, s)
starttime = time.time() print("Training Network 6") trainer6 = backprop.BackpropTrainer(net6, dataset=train) score6 = trainer6.train() trainerrorlist.append(score6) timeTaken.append(time.time() - starttime) print("BackPropTrainer 1 has an error rate of " + score1.__str__()) print("BackPropTrainer 2 has an error rate of " + score2.__str__()) print("BackPropTrainer 3 has an error rate of " + score3.__str__()) print("BackPropTrainer 4 has an error rate of " + score4.__str__()) print("BackPropTrainer 5 has an error rate of " + score5.__str__()) print("BackPropTrainer 6 has an error rate of " + score6.__str__()) testErrorArray = [] score1a = ModuleValidator.MSE(net1, test) testErrorArray.append(score1a) score2a = ModuleValidator.MSE(net2, test) testErrorArray.append(score2a) score3a = ModuleValidator.MSE(net3, test) testErrorArray.append(score3a) score4a = ModuleValidator.MSE(net4, test) testErrorArray.append(score4a) score5a = ModuleValidator.MSE(net5, test) testErrorArray.append(score5a) score6a = ModuleValidator.MSE(net6, test) testErrorArray.append(score6a) print("Printing mean square error values") print("BackPropTrainer 1 has a test error rate of " + score1a.__str__()) print("BackPropTrainer 2 has a test error rate of " + score2a.__str__())
numeroDeAcessos = 10 numeroDeEpocasPorAcesso = 50 fig1 = plt.figure() ax1 = fig1.add_subplot(111) ax1.axis([0, 2 * math.pi, -1.5, 1.5]) fig1.hold() fig2 = plt.figure() ax2 = fig2.add_subplot(111) ax2.axis([-50, numeroDeAcessos * numeroDeEpocasPorAcesso + 50, 0.00001, 4]) ax2.set_yscale('log') fig2.hold() meansq = ModuleValidator() erro2 = meansq.MSE(treinadorSupervisionado.module, dados) print erro2 ax2.plot([0], [erro2], 'bo') tempoPausa = 1 for i in range(numeroDeAcessos): treinadorSupervisionado.trainEpochs(numeroDeEpocasPorAcesso) meansq = ModuleValidator() erro2 = meansq.MSE(treinadorSupervisionado.module, dados) print erro2 ax1.plot(dados['input'], dados['target'], 'bo', markersize=7, markeredgewidth=0) ax1.plot(dados['input'],
timeSpentBuilding.append(end - start) print("Trainer created") start = time.clock() trainer = BackpropTrainer(LSTMNetwork, dataset=train) error = trainer.train() end = time.clock() print str(end - start) + " seconds for the training the network" print("LSTMNetwork" + str(LSTMNetworkNumber) + " has an error rate of: " + str(error)) overallError.append(error) timeSpentTraining.append(end - start) print("Validating the trained network to the testing one") start = time.clock() validation = ModuleValidator.MSE(LSTMNetwork, test) end = time.clock() print str(end - start) + " seconds for testing the network" print("Backpropagation Trainer " + str(LSTMNetworkNumber) + " has test error rate of: " + str(validation)) testComparison.append(validation) timeSpentTesting.append(end - start) LSTMNetworkNumber += 1 # Values for OverallError and TestComparison print str(overallError) print str(testComparison) # Plot of network's error after training plt.plot([1, 2, 3, 4], overallError)
def eval_nn(params): global nn, trndata nn.reset() nn.params[:] = params return ModuleValidator.MSE(nn, trndata)