Unity3D ML-Agent-0.8.1 学习四(模仿学习)

Unity3D ML-Agent-0.8.1 学习四(模仿学习)Unity3DMl-Agent-0.8.1学习四(模仿学习)写的目的场景设置修改配置并训练总结写的目的本篇介绍模仿学习,即玩家边玩,代理边学习,主要分为在线学习和离线学习,在线就是跟着师傅一起学,离线就是看是师傅录制的资料学习,我们主要讲在线学习,就是玩家边玩,AI边学习,可以实时观察学习的效果,离线学习只是记录玩家信息,产生生成一个文件,命令行学习文件即可,不多做介绍。场景设置可以…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Unity3D ML-Agent-0.8.1 学习四(模仿学习)

写的目的

本篇介绍模仿学习,即玩家边玩,代理边学习,主要分为在线学习和离线学习,在线就是跟着师傅一起学,离线就是看是师傅录制的资料学习,我们主要讲在线学习,就是玩家边玩,AI边学习,可以实时观察学习的效果,离线学习只是记录玩家信息,产生生成一个文件,命令行学习文件即可,不多做介绍。
在这里插入图片描述

场景设置

可以复制前面的多代理学习的场景,预制TrainingArea复制2份,分别命名为StudentTrainingAreaTeacherTrainingArea,因为我们需要有是老师带学生学习,所以需要2个预制,当然其实只需要StudentTrainingArea,因为可以多个学生一起跟一个老师学习。
在这里插入图片描述

创建1个大脑,即学生模仿学习的大脑,命名为StudentRollerBallILBrain,属性还是跟单代理一样。
在这里插入图片描述
然后将StudentTrainingArea里的RollerAgent上的大脑换成StudentRollerBallILBrain
在这里插入图片描述
TeacherTrainingArea里的RollerAgent上的大脑换成RollerBallPlayerBrain,即我们最开始人为操作的大脑,因为需要跟着玩家学,所以得需要人为操作。
在这里插入图片描述
再将Academy里的广播大脑设置成刚才那两个,即他们之间可以通信了,学生可以学习老师的行为了。记得训练前Control打勾。
在这里插入图片描述
设置完成后,如果要多代理训练,可以复制多个学生预制,感觉像做广播操一样
在这里插入图片描述

修改配置并训练

场景设置完了之后,找到online_bc_config.yaml文件:
在这里插入图片描述
然后添加StudentRollerBallILBrain设置,可以参考我这个

StudentRollerBallILBrain: 对应大脑的名字
    trainer: online_bc
    max_steps: 2000  
    summary_freq: 100
    brain_to_imitate: RollerBallPlayerBrain 对应老师的名字,即要模仿的对象
    batch_size: 32
    batches_per_epoch: 5
    num_layers: 4
    hidden_units: 64
    use_recurrent: false
    sequence_length: 16

最后命令行进行训练:

mlagents-learn config/online_bc_config.yaml --run-id=RollerBall-IL --train --slow     --slow 代表正常速度,方便操作

在这里插入图片描述
可以看到效果也不错,当然取决于你的操作啦。训练完之后就是把相应的大脑换上即可看效果。

总结

模仿学习其实也不错,用于比较复杂的情况,可以先带着AI训练训练,不然AI真的摸不着头脑,瞎逛了。

例子主要文件unity3D-ml-agent-0.8.1

好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵,部分图片来自网络,侵删。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192926.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数组去重的方法java_五种数组去重方法的性能比较「建议收藏」

    数组去重的方法java_五种数组去重方法的性能比较「建议收藏」为什么要写这篇文章之前参与面试一名外包程序员的时候,我要求他手写一个数组去重的方法,当时他使用了对象保存数值,通过查询去重。我表示表占用了空间,能不能只操作数组本身,减少空间占用。当时我想的是用indexOf和splice来操作数组,查询到index不等于i的时候,使用splice删除元素,之后自己跑了一遍发现函数执行时间非常长,所以想着研究一下效率比较高的去重方法。去重方法介…

    2022年6月18日
    39
  • MongoDB和MySQL和Redis的区别

    MongoDB和MySQL和Redis的区别MongoDB和MySQL和Redis的区别MySQL1、在不同的引擎上有不同的存储方式。2、查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。3、开源数据库的份额在不断增加,mysql的份额页在持续增长。4、缺点就是在海量数据处理的时候效率会显著变慢。MongoDBMongodb是非关系型数据库(nosql),属于文档型数据库。文档是mongoDB中数据的基本单元,类似关系数据库的行,多个键值对有序地放置在一起便是文档,语法有点类似javascript面向对象的查询语言,

    2022年6月26日
    25
  • Ajax中responseText解析json格式数据

    Ajax中responseText解析json格式数据解决ajax处理服务器端返回结果responseText中是JSON的数据。第一,json格式的文件内容如下:{"city":"ShangHai",&q

    2022年7月3日
    22
  • 九款Linux文本编辑器

    九款Linux文本编辑器元老级的工具EmacsKVIM用现代的方式编写代码Arachnophilia  Bluefish:Bluefish标榜其自身是“一款为熟练的Web设计员和程序员而设的编辑器”。KomodoEditNEdit字处理的一些选择Gedit:是LinuxGNOME桌面上一款小巧的文本编辑器。Kate集成的工具QuantaPl

    2022年7月26日
    6
  • Ags 9.3 文档逐步上线

    Ags 9.3 文档逐步上线

    2021年7月27日
    49
  • idea 好用插件_效率软件推荐

    idea 好用插件_效率软件推荐0.引言不同类型的开发插件具备不同的作用,有能够直接提升我们开发效率的,也有能够规范我们代码的。在茫茫的插件海中,结合我这些年的使用总结,给大家推荐几款IDEA插件1.代码规范类1.1AlibabaJavaCodingGuidelines介绍首当其冲的必定是阿里的代码规范插件AlibabaJavaCodingGuidelines,从我还是小白时到现在这款插件已经陪伴了我几年光阴。我愿称它为你最少最少要遵守的代码规范。安装后,当你书写的代码不符合阿里规范时,会将代码标黄,鼠标移动

    2025年9月7日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号