训练后将保存的NEAT-Python基因组应用于测试环境

肮脏的

我已经使用一些NEAT算法来为一些易玩的游戏(如拍打小鸟)编写自己的AI。一切正常,我知道发生了什么。问题是我不知道如何处理结果。人工智能学会了一些东西,我想保存这一进步。TechwithTim YouTuber说了一些关于使用泡菜的事,当我保存泡菜时对我有用。我什至可以从文件中加载它,但这就是我要结束的地方。我不知道下一步该怎么做,只知道一只鸟在他之前玩游戏就开始一只鸟玩游戏。

保存在一个代码中

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

用另一个代码打开:

with open("winner.pkl", "wb") as f:
    genome = pickle.load(f)

使用时

print(type(genome))

输出是

<class "neat.genome.DefaultGenome">
PaulOnStack溢出

我假设您提供的代码不是您自己的,并且您正在学习某种教程。代码的质量很低,注释形式的文档实际上不存在,变量命名不是英语。如果您进行了编码,那对于初学者来说完全没问题。实际上甚至令人印象深刻。尽管特别是对于初学者的教程,但我还是强烈建议搜索更好的解释和文献记录的教程。

话虽如此,这是您需要添加到项目中以重播保存的基因组的代码:

def replay_genome(config_path, genome_path="winner.pkl"):
    # Load requried NEAT config
    config = neat.config.Config(neat.DefaultGenome, neat.DefaultReproduction, neat.DefaultSpeciesSet, neat.DefaultStagnation, config_path)

    # Unpickle saved winner
    with open(genome_path, "rb") as f:
        genome = pickle.load(f)

    # Convert loaded genome into required data structure
    genomes = [(1, genome)]

    # Call game with only the loaded genome
    game(genomes, config)

显然,由于代码质量相当低,我无法理解它的程度,无法提供干净的重播代码。因此,尽管在这种情况下种群仅由加载的基因组组成,但是该代码只是在重用现有的游戏代码来训练种群。

无耻的插件:如果您想了解有关神经进化的更多信息,请参见此处:https ://towardsdatascience.com/9068f532f7f7

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将SNP ID映射到基因组坐标

来自分类Dev

将单个基因组区间连接到种群区域

来自分类Dev

将位置串联成基因组片段

来自分类Dev

如何将配置应用于一组基于属性的测试?

来自分类Dev

使用 map() 将测试(Jarque-Bera)应用于子组

来自分类Dev

将条件应用于不同的组

来自分类Dev

Python机器学习-训练/测试并将预测应用于新数据集

来自分类Dev

Python-无法将数据验证应用于列组

来自分类Dev

使用random.shuffle()将一组函数随机应用于python字典

来自分类Dev

使用numpy将DNA序列读数随机分布在基因组特征上

来自分类Dev

如何将基因组SNP转换为二进制格式?

来自分类Dev

使用numpy将DNA序列读数随机分布在基因组特征上

来自分类Dev

使用 NEAT 算法,两个基因组的子代是否总是与最合适的父代具有相同的结构?

来自分类Dev

将函数应用于向量中的连续组

来自分类Dev

将角度指令应用于一组元素

来自分类Dev

Sed:将替代应用于捕获的组

来自分类Dev

熊猫将功能应用于列和索引组

来自分类Dev

熊猫Groupby将功能应用于组

来自分类Dev

将排名应用于Pandas Groupby中的每个组

来自分类Dev

将操作应用于熊猫中的组

来自分类Dev

将多个条件应用于捕获组

来自分类Dev

将功能应用于数据框中的每个组

来自分类Dev

使用ARM将Azure策略应用于管理组

来自分类Dev

如何正确将填充应用于组框控件?

来自分类Dev

将通用代码应用于jbutton组

来自分类Dev

在将命令应用于stdin中的行组时

来自分类Dev

将函数应用于组以更改数据

来自分类Dev

将函数应用于 dplyr 中的多个组

来自分类Dev

将子分组应用于 R 中的子组

Related 相关文章

热门标签

归档