Pyevolve 具有多处理功能,每代 GA 使用更多 RAM



我正在使用pyevolve来运行具有多处理功能的GA。代码运行良好,但每一代新一代 GA 都会使用更多内存。该代码正在为每一代创造新的工作,而以前的工作处于空闲状态,而保留 RAM.It 最终在大约 10 代后崩溃。 我该如何纠正?[公羊用法][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()

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

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

-

-添加以下两个命令:

proc_pool.close()
proc_pool.join()
-

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

-

-重建并重新安装库。
即C:\Pevolve Source code\Pyevolve-0.6rc1\pyevolve\GPopulation (我的在这里(

使用空闲进行编辑

-

-在self.clearFlags()之前添加proc_pool.close()proc_pool.join()

--救

打开命令提示符

  1. 转到 C:\Pevolve 源代码\Pyevolve-0.6rc1
  2. setup.py 构建
  3. setup.py 安装

最新更新