我正在使用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()
--救
打开命令提示符
- 转到 C:\Pevolve 源代码\Pyevolve-0.6rc1
- setup.py 构建
- setup.py 安装