Beispiel #1
0
def generate(generations, population, nn_param_chices, dataset):
    genetic = Genetic(nn_param_chices)
    gans = genetic.create_population(population)

    for i in range(generations):
        train_gan(gans, dataset)

        average_accuracy = get_average_accuracy(gans)

        if i != generations - 1:
            gans = genetic.evolve(gans)

    gans = sorted(gans, key=lambda x: x.accuracy, reverse=True)
Beispiel #2
0
        print("")
        for r in robots_sorted[:5]:
            print ("{:.2f}%\t{:.2f}%\t{:.2f}%\t{}".format(100*r.get_fitness(), 100*r.get_fitness_distances(), 100*r.get_fitness_sensors(), r.id))


        print ("#"*40)
        print ("\nEnded generation {} after {} steps".format(generation, step))
        print ("Best robot got to distance {} and fitness {:.2f}%".format(closest_distance, 100*best_fitness))
        generation_scores.append([closest_distance, best_fitness])
        print ("#"*40)
        generation += 1
        
        # input("press enter to continue")
        

        #get robots gains and fitness value to run genetic algorithm
        results = list()
        for r in robots:
            gains = r.control_unit.get_gains()
            fitness = r.get_fitness()
            
            robot_result = {"gains":gains, "fitness":fitness, "id":r.id}
            results.append(robot_result)

        g = Genetic(results)
        new_gains = g.evolve(keep_percent=0.20)
        
            
        for i, n in enumerate(neurals):
            n.set_gains(new_gains[i]["gains"])