def getbest(): g = NEAT.Genome(0, 3, 0, 1, False, NEAT.ActivationFunction.UNSIGNED_SIGMOID, NEAT.ActivationFunction.UNSIGNED_SIGMOID, 0, params) pop = NEAT.Population(g, params, True, 1.0) pool = mpc.Pool(processes=4) generations = 0 for generation in range(1000): genome_list = NEAT.GetGenomeList(pop) fitness_list = NEAT.EvaluateGenomeList_Parallel(genome_list, evaluate) NEAT.ZipFitness(genome_list, fitness_list) best = max([x.GetLeader().GetFitness() for x in pop.Species]) # print 'Best fitness:', best, 'Species:', len(pop.Species) # test net = NEAT.NeuralNetwork() pop.Species[0].GetLeader().BuildPhenotype(net) img = np.zeros((250, 250, 3), dtype=np.uint8) img += 10 NEAT.DrawPhenotype(img, (0, 0, 250, 250), net) cv2.imshow("nn_win", img) cv2.waitKey(1) pop.Epoch() # print "Generation:", generation generations = generation if best > 15.5: break return generations
def getbest(): g = NEAT.Genome(0, substrate.GetMinCPPNInputs(), 0, substrate.GetMinCPPNOutputs(), False, NEAT.ActivationFunction.SIGNED_GAUSS, NEAT.ActivationFunction.SIGNED_GAUSS, 0, params) pop = NEAT.Population(g, params, True, 1.0) for generation in range(1000): genome_list = NEAT.GetGenomeList(pop) fitnesses = NEAT.EvaluateGenomeList_Parallel(genome_list, evaluate) # fitnesses, elapsed = NEAT.EvaluateGenomeList_Serial(genome_list, evaluate) [ genome.SetFitness(fitness) for genome, fitness in zip(genome_list, fitnesses) ] best = max([x.GetLeader().GetFitness() for x in pop.Species]) # print 'Best fitness:', best # test net = NEAT.NeuralNetwork() pop.Species[0].GetLeader().BuildPhenotype(net) img = np.zeros((250, 250, 3), dtype=np.uint8) img += 10 NEAT.DrawPhenotype(img, (0, 0, 250, 250), net) cv2.imshow("CPPN", img) net = NEAT.NeuralNetwork() pop.Species[0].GetLeader().BuildHyperNEATPhenotype(net, substrate) img = np.zeros((250, 250, 3), dtype=np.uint8) img += 10 NEAT.DrawPhenotype(img, (0, 0, 250, 250), net, substrate=True) cv2.imshow("NN", img) cv2.waitKey(1) pop.Epoch() # print "Generation:", generation generations = generation if best > 15.5: break return generations