コード例 #1
0
 def toggleRun(self):
     env = gym.make(self.envEntry.get())
     if not self.running:
         if not self.poolInitialized:
             if env.action_space.__class__ == gym.spaces.discrete.Discrete:
                 actions = env.action_space.n - 1
             else:
                 actions = env.action_space.shape[0]
             if env.observation_space.__class__ == gym.spaces.discrete.Discrete:
                 observation = env.observation_space.n
             else:
                 observation = env.observation_space.shape[0]
             self.pool = neat.pool(int(self.populationEntry.get()),
                                   observation,
                                   actions,
                                   recurrent=False,
                                   connectionCost=True)
             env.close()
             self.poolInitialized = True
         self.running = True
         self.runButton.config(text='running')
         self.master.after(250, self.checkRunPaused)
     else:
         self.running = False
         self.runButton.config(text='pausing')
コード例 #2
0
    def toggleRun(self):

        if not self.running:
            if not self.poolInitialized:
                self.pool = neat.pool(self.population.get(),
                                      208,
                                      4,
                                      recurrent=False,
                                      connectionCost=False)
                self.poolInitialized = True
                self.running = True
                self.runButton.config(text='running')
            self.running = True
            self.runButton.config(text='running')
            self.master.after(250, self.checkRunPaused)
        else:
            self.running = False
            self.runButton.config(text='pausing')
コード例 #3
0
    def loadFile(self):
        filename = filedialog.askopenfilename()
        if filename is ():
            return
        f = open(filename, "rb")
        loadedPool = pickle.load(f)
        species = loadedPool[0]
        self.lastPopulation = loadedPool[2]
        self.plotDictionary = loadedPool[3]
        self.plotData = loadedPool[4]
        self.genomeDictionary = loadedPool[5]
        self.specieID = loadedPool[6]
        newInovation = 0
        for specie in species:
            for genome in specie.genomes:
                for gene in genome.genes:
                    if gene.innovation > newInovation:
                        newInovation = gene.innovation

        self.pool = neat.pool(sum(
            [v for v in [len(specie.genomes) for specie in species]]),
                              species[0].genomes[0].Inputs,
                              species[0].genomes[0].Outputs,
                              recurrent=species[0].genomes[0].recurrent)
        self.pool.newGenome.innovation = newInovation + 1
        self.pool.species = species
        self.pool.best = loadedPool[1]
        self.pool.generation = len(self.pool.best)
        neat.pool.generations = loadedPool[7]
        self.population.set(self.pool.Population)
        self.poolInitialized = True
        f.close()
        self.ax.stackplot(list(range(len(self.plotData[0]))),
                          *self.plotData,
                          baseline='wiggle')
        canvas = FigureCanvasTkAgg(self.fig, self.master)
        canvas.get_tk_widget().grid(row=5, column=0, rowspan=5, sticky="nesw")
        print(filename, "loaded")