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)
上一篇 2025年12月5日 下午3:22
下一篇 2025年12月5日 下午4:01


相关推荐

  • js 保留两位小数的方法总结「建议收藏」

    js 保留两位小数的方法总结「建议收藏」1、四舍五入的情况varnum=2.446242342;num=num.toFixed(2);//输出结果为2.452、不四舍五入第一种,先把小数边整数:Math.floor(15.7784514000*100)/100//输出结果为15.77第二种,当作字符串,使用正则匹配:Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/))//输出结果为15.77,不能用于整数如10必须写

    2022年8月10日
    8
  • 压缩包文件的解压密码如何激活成功教程

    压缩包文件的解压密码如何激活成功教程压缩包文件带有解压码,在不知道密码的情况下,想要解压文件,需要使用激活成功教程软件将解压密码找回才能顺利解压文件,比如使用奥凯丰压缩包解密大师【压缩包解密大师】快速找回密码_轻松移除使用限制-奥凯丰okfone压缩包大师是奥凯丰推出的一款可以找回RAR打开密码以及移除RAR使用限制的软件,使用户可以自由编辑和打印RAR文件https://www.okfone.com/onepass-for-rar/onepass-for-rar.html将压缩包(支持rar、zip、7z格式)添加到软件中,选择一种找回方法,

    2025年8月2日
    5
  • 16位汇编指令_汇编语言指令表

    16位汇编指令_汇编语言指令表汇编语言特点:与机器相关,执行效率高,调试复杂汇编语言优缺点:汇编语言和高级语言混合编写,互补数据表示类型:二进制B,八进制Q,十进制D,十六进制HBCD编码:用二进制来表示十进制数CPU资源和存储器:通用寄存器,标志寄存器,指令寄存器EAX,累加ECX,循环计数EDX,数据寄存器EBX,基址寄存器ESP,栈顶EBP,栈底ESI,扩展源指针EDI,扩

    2022年10月21日
    5
  • java关键字strictfp

    java关键字strictfp关键字 strictfp 是 strictfloatp 的缩写 指的是精确浮点 它用来确保浮点数运算的准确性 在 JVM 在执行浮点数运算时 如果没有指定 strictfp 关键字 此时计算结果可能会不精确 而且计算结果在不同平台或者厂商的虚拟机上会有不同的结果 导致意想不到的错误 而一旦使用了 strictfp 来声明一个类 接口或者方法 那么在所声明的范围内 java 编译器以及运行环境会完全依照 IE

    2026年3月16日
    2
  • 未明确定义列什么原因_将多表数据汇总到一个表

    未明确定义列什么原因_将多表数据汇总到一个表运行环境:Oracle10gsqlplus环境下。 在查询语句中,经常会出现一个错误: SQL基础:ORA-00918:未明确定义列的错误。 当前遇到有两种情况。原因为:当查询语句中,查询的表(数据集)中有相同的字段名,查询字段无法确认是改查那个字段 时,就会报未明确定义列的错误。 第一种情况: 1.单表时: 比如fconsign表中存在三个字段:fcsg_c

    2022年10月5日
    4
  • objdump 反汇编_so文件反汇编

    objdump 反汇编_so文件反汇编objdump反汇编,反汇编与源代码混合显示,C++符号逆向解析。

    2025年7月21日
    3

发表回复

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

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