gpt4 book ai didi

python - 如何保存和重新训练 neat-python 模型?

转载 作者:行者123 更新时间:2023-12-04 15:21:44 24 4
gpt4 key购买 nike

我训练了一个 neat-python 模型来玩贪吃蛇。我想在 50 代后保存模型,然后我想加载它并从那里重新训练它,这可能吗?我看到了一种可以重放的方法,但只需重放一次,而不是从那个阶段重新训练它。

我的保存代码:

winner = p.run(main, 170)
with open("winner.pkl", "wb") as f:
pickle.dump(winner, f)
f.close()

我希望能够加载它并再次调用运行函数来重新训练它

def run(config_file):
config = neat.config.Config(neat.DefaultGenome, neat.DefaultReproduction,
neat.DefaultSpeciesSet, neat.DefaultStagnation,
config_file)
p = neat.Population(config)
p.add_reporter(neat.StdOutReporter(True))
stats = neat.StatisticsReporter()
p.add_reporter(stats)
winner = p.run(main, 50)
with open("winner.pkl", "wb") as f:
pickle.dump(winner, f)
f.close()

if __name__ == '__main__':
local_dir = os.path.dirname(__file__)
config_path = os.path.join(local_dir, 'config-feedforward.txt')
run(config_path)

最佳答案

试试这个:

https://neat-python.readthedocs.io/en/latest/_modules/checkpoint.html

它有效,唯一的问题是它从上次保存的生成中加载并再次覆盖它。

所以如果你运行了5代并且保存所有5个:0,1,2,3,4;如果你加载最后一个,你将获得保存:4,5,6,7,8

这不允许只保存一代,因为它会加载并重做同一代,这基本上会让你一直处于第 0 代。非常奇怪。

但如果您不介意每次都失去上一代,这就是脚本。

有人对此有解决方法吗?

关于python - 如何保存和重新训练 neat-python 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63177426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com