前一周忙着公司的考试,都没有怎么学新的,今天补上~ 之后的记录,我准备先只研究官方的示例,主要是把研究过程中的疑惑和想法记下来。首先我先补充一下如何利用GPU进行训练,结合(一)中的安装方法,需要CUDA v10.0,cuDNN v7.6.5 for CUDA v10.0,对应Tensorflow的版本是2.0.1。
一、利用GPU进行训练
前置工作在文章(一)中都有,原先的环境可以保留。现在可以拉一个新的ml-agents源码,然后修改ml-agents文件下的setup.py中如下图:
原来是"tensorflow>=1.7,<2.1",现在修改为"tensorflow-gpu>=1.7,<2.1",然后再在Anaconda中新建一个环境,如下:
建好后在命令行中重新安装环境(别忘记cd到新的ml-agents源码),分别输入:
pip install -e ml-agents-envs -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip install -e ml-agents -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
就是分别安装两个环境,可以发现他会自动下载tensorflow_gpu-2.0.1,如下图:
配置好后,在Unity对应的Agent脚本上,也需要将Inference Device勾选为GPU,然后按以前的方法开始训练,就可以了。
二、3DBall介绍
官方示例中,3Dball是一个比较简单的例子,主要运用了reinforcement learning(强化学习)。就是小球在平台上,萌版平台要控制自己绕x、z轴旋转,从而保持小球在自己头上不掉下来。
现根据官方文档翻译一下:
-
设置:一个平衡球任务,agent需要保持小球在其脑袋上的平衡
-
目标:Agent必须尽可能长时间地保持球在头顶的平衡
-
Agent设置:环境中包含12个想同类型的agent,全部使用同样的行为参数
-
Agent奖励设置:
-
小球每一步保持在方块头顶上就奖励+0.1
-
如果小球掉落,惩罚-0.1
-
行为参数
-
矢量观察空间:8个变量,包括agent方块的旋转角度(两个值,x、z轴方向),球和方块之间的相对位置关系(Vector3),球上刚体的速度(Vector3)
-
矢量动作空间:类型为Continuous,Size为2,分别控制绕x轴旋转、绕z轴旋转
-
Float属性:三个
-
scale(比例):小球的比例,默认为1,推荐最小值为0.2,最大值为5
-
gravity(重力):重力加速度,默认为9.81,推荐最小值4,最大值为105
-
mass(质量):小球的质量,默认为1,推荐最小值为0.1,最大值为20
-
基准平均奖励:100
OK,上面是借鉴官方文档,随意翻译了一下,大概可以了解3DBall主要用途和一些主要参数,里面的Float属性我这里不是很明白,在代码中是用在Agent.InitializeAgent()中的SetResetParameters(),这个方

最低0.47元/天 解锁文章
1622

被折叠的 条评论
为什么被折叠?



