0

我正在使用 pyevolve 使用多处理运行 GA。代码运行良好,但每一代 GA 都会使用更多内存。该代码正在为每一代创建新作业,而之前的作业在保留 RAM 时处于空闲状态。它最终在大约 10 代后崩溃。我该如何纠正这个问题?[Ram 使用][1][1]:https ://i.stack.imgur.com/knCC0.jpg

def main_run():

    flowargs, rhoargs, zindex=get_params()
    genome = G1DList.G1DList(18)
    genome.initializator.set(myGA.myInitializator)
    genome.crossover.set(myGA.mycrossover)
    genome.mutator.set(pl.Mutators.G1DListMutatorSwap)
    genome.setParams(z=zindex,f=flowargs,r=rhoargs)
    genome.evaluator.set(get_rho)
    ga = GSimpleGA.GSimpleGA(genome)
    ga.minimax = Consts.minimaxType["minimize"]
    ga.setGenerations(100)
    ga.selector.set(Selectors.GRouletteWheel)
    ga.setInteractiveMode(False)
    ga.setMultiProcessing(True)
    ga.evolve(freq_stats=1)
    best = ga.bestIndividual()
    print(best)

if __name__ == "__main__":
    main_run()
4

1 回答 1

0

不久前我遇到了这个问题,经过大量研究我找到了答案,

您必须修改GPopulation.py库源代码中的,

--添加以下两条命令:

proc_pool.close()
proc_pool.join()

--在最后一行之前function evaluate(self, **args)

--重建并重新安装库。
即 C:\Pevolve 源代码\Pyevolve-0.6rc1\pyevolve\GPopulation (我的是这里)

使用 IDLE 编辑

--在前面加上proc_pool.close()&proc_pool.join()self.clearFlags()

- 节省

打开命令提示符

  1. 转到 C:\Pevolve 源代码\Pyevolve-0.6rc1
  2. setup.py 构建
  3. setup.py 安装
于 2018-08-29T09:36:09.970 回答