Beispiel #1
0
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)
Beispiel #3
0
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)
Beispiel #6
0
 def eval_nn(params):
     global nn, trndata
     nn.reset()
     nn.params[:] = params
     return ModuleValidator.MSE(nn, trndata)