def fitness_func(ind, queue=None): assert not ind.fitness, "Recalculation of existing fitness value -> This shouldn't have happened!" data = CData("TestData/Dohany_ANN/full.csv", cross_val=.2, header=True, sep=";") repeats = ind.genome[1] ind.phenotype = get_brain(ind.genome, data) for _ in range(repeats): for batch in data.batchgen(5): ind.phenotype.learn(batch) fitness = data.test(ind.phenotype) ind.fitness = fitness # If parallelization is involved if queue: queue.put(ind)
HIDDENS = (30,) RATE = 3 REPEATS = 1 BATCHSIZE = 10 start = time.time() myData = CData("TestData/MNIST/mnist.pkl.gz", cross_val=0.2, header=False) INPUTS, OUTPUTS = myData.neurons_required() LAYOUT = [INPUTS] + list(HIDDENS) + [OUTPUTS] archimedes = FFLayerBrain(RATE, layout=LAYOUT) for epoch in range(REPEATS): batches = myData.batchgen(BATCHSIZE) for index, batch in enumerate(batches): if index % 200 == 0: right = myData.test(archimedes, "testing") print(index * BATCHSIZE, right, sep="\t") archimedes.learn(batch) rrate = myData.test(archimedes) # Right-rate print("Test @{}:".format(epoch), rrate, sep="\t") print("Learning is done! Time required: {} seconds.".format(int(time.time() - start))) print("----------------------------------------------") print("Final test:") rrate = myData.test(archimedes) print("{}% right.".format(round(rrate * 100), 2))
from AI.Architecture.FFNN import * from Wrappers.DataModel import CData # ARCHITECTURE = FFNeuralBrain ARCHITECTURE = FFLayerBrain bob = ARCHITECTURE(1, (2, 3, 2)) bob.shuffle(1) data = CData("TestData/LogicGates/AND.txt") for i in range(10000): if i % 1000 == 0: print("Error @:", i, data.test(bob, "l"), sep="\t") bob.learn(data.table())