技术标签: ML-Agents unity Unity 游戏引擎 强化学习
本节将介绍设计学习环境的一般性建议,概述 ML-Agents Unity SDK 中关与场景设置相关的方面。
关于 Agent 设计将在 Designing Agents 章节中专门阐述(包含设计Agent,观测,行为和奖励,为Multi-Agent场景定义团队和模仿学习),不在本节做详细介绍。
为了帮助理解 ML-Agents Toolkit 提供的全部功能,建议查阅 API documentation。
此外,我们的 example environments 中也有许多不错的资源,
这些示例提供了 ML-Agents Toolkit 几乎所有特性的示例用法。
训练和模拟将按照 ML-Agents 中 Academy 类设定的步骤进行。
Academy 协同场景中的 Agent,逐步进行模拟。
训练过程中,外部的 Python 训练进程与 Academy 通信,在 Episode 逐次执行的同时收集数据并优化其神经网络模型参数。
当训练完成后,你可以将训练得到的模型文件添加到 Unity 项目中供后续的推理阶段使用。
ML-Agents Academy 类协同 Agent 模拟执行逻辑如下:
OnEnvironmentReset
委托。OnEpisodeBegin()
函数。CollectObservations(VectorSensor sensor)
函数,收集有关场景的信息。OnActionReceived()
函数,传递 Agent 根据策略选择的动作。Max Step
或 Agent 将自身标记为 EndEpisode()
,OnEpisodeBegin()
函数。创建一个训练环境(Environment),需要扩展 Agent 类并根据训练环境实现上述函数。
在 Unity 场景中训练和使用 ML-Agents Toolkit,需要根据场景中需要多少不同的 Agent 派生相应个数的 Agent 子类。
Agent 实例应该附加到该 Agent 所代表的 GameObject 上。
Academy 是一个单例类,协调 Agent 和其决策过程。
同一时间只有同一个 Academy 实例存在。
将自定义的函数注册到 Academy 的 OnEnvironmentReset 事件中,可以在每个 Episode 开始时调整训练环境。
public class MySceneBehavior : MonoBehaviour
{
public void Awake()
{
Academy.Instance.OnEnvironmentReset += EnvironmentReset;
}
void EnvironmentReset()
{
// Reset the scene here
}
}
比如,你可以将 Agent 放置到其起始位置或将目标移动到随机位置。
当在 Python 中调用 UnityEnvironment
类的 reset()
方法时,环境将重置。
重置时应该适当的改变训练环境,以适应不同的情况。
例如训练一个解迷宫的 Agent,训练过程中每个 Episode 都应该更改迷宫本身。
否则,无法训练出通用的解谜宫 Agent,只能学会解决某个特定的迷宫。
在示例环境中,可以看到场景中实例化了多个训练区域。
这通常可以加快训练速度,同时收集多个训练区域的数据。
多个训练区域是通过实例化多个具有相同 Behavior Name 的 Agent 来实现的。
所以,如果可能的话,在设计应当考虑让场景支持多个区域。
查看示例,可以看到多训练区域的实际使用。
此外,Making a New Learning Environment 也演示了其使用方法。
若要在 Unity 中创建训练环境,必须先搭建一个场景,以便场景能够被 Python 的训练进程控制。
搭建场景的注意事项包括:
Max Steps
,要么调用 Agent 的 EndEpisode()
手动结束。课程式学习(Curriculum Learning)和环境参数随机化(Environment Parameter Randomization)是控制环境中特定参数的两种训练方法,确保在每一步都将环境参数更新为正确的值是很重要的。
为此,我们公开了一个名为 EnvironmentParameters
的 C# 类,用于检查这些训练配置中定义的参数值。
请参阅我们的 文档 了解课程式学习(Curriculum Learning)和环境参数随机化(Environment Parameter Randomization)的详细内容。
我们建议利用 Academy.Instance.EnvironmentParameters
从 Agent 的 OnEpisodeBegin()
函数中修改环境。
参见 WallJump 示例中的展示用法(位于 WallJumpAgent.cs)
Agent 类表示场景中的某个 Actor,它能收集观测(Observation)并做出动作(Action)。
Agent 类通常挂在场景中代表了参与者的 GameObject 上 —— 例如,足球游戏中的球员或驾驶模拟中的汽车。
每个 Agent 都必须有适当的 Behavior Parameters
。
通常,创建一个 Agent 时,应该继承 Agent 类并实现 CollectObservations(VectorSensor sensor)
和 OnActionReceived()
方法:
CollectObservations(VectorSensor sensor)
收集 Agent 对环境的观测。OnActionReceived()
执行 Agent 根据策略选择的动作,并给当前状态分配一个奖励。Agent 的 Behavior Parameters 属性的配置,取决于这些函数如何实现。
同时还必须确定 Agent 是否完成任务或超时。
当 Agent 已经完成任务(或不可挽回地失败)时,可以在 OnActionReceived()
函数中调用 EndEpisode()
,手动终止当前 Episode。
也可以将Agent的 Max Steps
属性设置为一个正数,这样 Agent 就会在完成这么多步骤的模拟后结束 Episode。
您可以使用 Agent.OnEpisodeBegin()
函数为再次启动 Agent 做好准备。
请参阅 Agents 以获得关于设计和编码自己的 Agent 的详细指导。
我们为开发者提供了一种机制来记录 Unity 环境中的统计数据。
这些统计数据是在训练过程中汇总和生成的。
要记录统计数据,请参阅 C# 的 StatsRecorder
类。
参见 FoodCollector 示例以了解用法(位于FoodCollectorSettings.cs)。
数据结构——树与二叉树(学期接近尾声,学数据结构13周了,还是好菜。)_哈夫曼数据集
【报告类型】产业研究【报告格式】电子+纸介版【出品单位】华经产业研究院本报告由华经产业研究院重磅推出,对中国汽车商业综合体行业的发展现状、竞争格局及市场供需形势进行了具体分析,并从行业的政策环境、经济环境、社会环境及技术环境等方面分析行业面临的机遇及挑战。还重点分析了重点企业的经营现状及发展格局,并对未来几年行业的发展趋向进行了专业的预判。为企业、科研、投资机构等单位了解行业最新发展动态及竞争格局,把握行业未来发展方向提供专业的指导和建议。本研究报告数据主要采用国家统计数据,海关总署,问卷调_2022-2027年中国汽车市场竞争格局及未来投资前景预测报告
直入正题,JS打开摄像头并截图上传至后端的一个完整步骤1. 打开摄像头主要用到getUserMedia方法,然后将获取到的媒体流置入video标签2. 截取图片主要用到canvas绘图,使用drawImage方法将video的内容绘至canvas中3. 将截取的内容上传至服务器,将canvas中的内容转为base64格式上传,后端(PHP)通过file_put_contents将其转为...
1065 01字符串 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 传送门 题目描述 Description 输出仅有0和1组成的长度为n的字符串,并且其中不能含有3个连续的相同子串。 输入描述 Input Description 输入文件只有一行一个整数n,表示有0和1组成的字符..._code[vs] 1065 01字符串
如题,本人后台开发,自学过基本的机器学习和深度学习,如果想组队打比赛不妨一起哈~_kdd cup组队
大数据离线批处理化解决方案安平领域• 离线处理平台主要用来进行数据处理和加工,将原始数据加工成明细数据。以及进行离线分析和碰撞分析产生分析结果数据,供上层应用调用。• 安平领域需要监控的数据有很多,比如公安系统,社会系统,互联网系统,还有一些其它的比如运营商系统。• 海量的数据作为数据源被存储起来,对于非实时的业务,可以进行离线批处理。• 将处理后的结果作为各个业务部门的数据库数据。..._数据中台 离线数据处理解决方案
1、查询第一行记录:select * from table limit 12、查询第n行到第m行记录select * from table1 limit n-1,m-n;SELECT * FROM table LIMIT 5,10;返回第6行到第15行的记录select * from employee limit 3,1; // 返回第4行3、查询前n行记录select * from table1..._mysql 第几行
基于WENET制作AI字幕wenet环境配置获取视频并转音频安装处理视频工具安装ffmpeg:https://blog.csdn.net/zhouyj6516/article/details/107416209ffmpeg参数:https://www.cnblogs.com/mwl523/p/10856633.htmlmp4转wav脚本ffmpeg -i cs.mp4 -vn -ar 16000 -ac 1 -ab 192 -f wav cs.wav脚本#!/usr/bin/bash_ai字幕python
最近换了新电脑,由于自己没有对之前的JDK安装包做备份,于是,便开始重新下载JDK。都知道Oracle收购了sun公司,所以我们直接前往Oracle公司的官网【网站入口】下载即可,由于Oracle的限制,需要用户注册Oracle账户才可以完成下载,注册很简单,it`s so easy!Oracle还不错,提供了中文版的官网,不过我觉得英文的也不错哦!1. 通过官网下载指定JDK程序按照下面的步骤,即可进入任意版本的下载界面中:进入官网,在产品菜单选择Java:点击进入之后,向下滑动页面将看到如下_下载指定版本的jdk
宠物网页设计 、保护动物网页、鲸鱼海豚主题、保护大象、等网站的设计与制作。️HTML宠物网页设计,采用DIV+CSS布局,共有多个页面,排版整洁,内容丰富,主题鲜明,首页使用CSS排版比较丰富,色彩鲜明有活力,导航与正文字体分别设置不同字号大小。导航区域设置了背景图。子页面有纯文字页面和图文并茂页面。 一套优质的网页设计应该包含 (具体可根据个人要求而定)网站布局方面:计划采用目前主流的、能兼容各大主流浏览器、显示效果稳定的浮动网页布局结构。网站程序方面:计划采用最新的......_html+css留言板代码
HashMap和LinkedHashMap的区别举报| 分享| 2014-12-30 17:39周杰伦000B8 | 浏览 17958 次 编程语言2014-12-31 09:56#2016年高质量新标准全面升级!#提问者采纳一般情况下,我们用的最多的是HashMap,在Map 中插入、删除和定位元素,HashMap 是
1. 在filterMap增加 map.put("/static/**","anon");2.在yml文件中添加spring: mvc: static-path-pattern: /static/**_shrio会拦截静态图片么