Pyevolve 与多处理在每一代 GA 中使用更多 RAM
Pyevolve with multi processing using more RAM with each GA generation
我正在使用 pyevolve 运行 使用多处理的 GA。代码 运行 没问题,但每新一代 GA 都会使用更多内存。该代码正在为每一代创建新的工作,而之前的工作是空闲的,而保留 RAM.It 最终在大约 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()
我前一段时间遇到了这个问题,经过大量研究我找到了答案,
你必须
修改库源码中的GPopulation.py
,
--添加如下两条命令:
proc_pool.close()
proc_pool.join()
--function evaluate(self, **args)
最后一行之前
--重建并重新安装库。
即
C:\Pevolve Source code\Pyevolve-0.6rc1\pyevolve\GPopulation(我的在这里)
使用 IDLE 编辑
--在self.clearFlags()
之前添加proc_pool.close()
& proc_pool.join()
--保存
打开命令提示符
- 转到C:\Pevolve源code\Pyevolve-0.6rc1
- setup.py 建造
- setup.py 安装
我正在使用 pyevolve 运行 使用多处理的 GA。代码 运行 没问题,但每新一代 GA 都会使用更多内存。该代码正在为每一代创建新的工作,而之前的工作是空闲的,而保留 RAM.It 最终在大约 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()
我前一段时间遇到了这个问题,经过大量研究我找到了答案,
你必须
修改库源码中的GPopulation.py
,
--添加如下两条命令:
proc_pool.close()
proc_pool.join()
--function evaluate(self, **args)
--重建并重新安装库。
即
C:\Pevolve Source code\Pyevolve-0.6rc1\pyevolve\GPopulation(我的在这里)
使用 IDLE 编辑
--在self.clearFlags()
proc_pool.close()
& proc_pool.join()
--保存
打开命令提示符
- 转到C:\Pevolve源code\Pyevolve-0.6rc1
- setup.py 建造
- setup.py 安装