Unity:ML-Agent初探

Unity的机器学习项目ML-Agent出来有一阵子了,但之前一直没有接触过,这次我打算利用这篇文章初步熟悉下这个神器,也希望我的分享能给读者带来帮助。

环境篇

安装Anaconda和Python 3

可以从Anaconda官方网站下载安装,并且Anaconda本身就内置Python 3和一些数据科学的库。当然如果追求效率(图省事)也可以像我一样用Visual Studio的安装工具。
安装Anaconda和Python 3
值得一提的是安装完后需要添加一下环境变量的Path,类似这样

C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\Scripts

一个是Python的安装路径,一个是路径下的Scripts文件夹。


下载ML-Agent项目代码,并安装依赖库

ML-Agent的GitHub地址下载项目,这里选择直接下载压缩包。
ml-agent github
下载完后解压打开,会发现python文件夹下有一个requirements.txt文件,记录了所需要的库:

tensorflow==1.7.1
Pillow>=4.2.1
matplotlib
numpy>=1.11.0
jupyter
pytest>=3.2.2
docopt
pyyaml
protobuf==3.5.2
grpcio==1.11.0

这么多库总不能一个个手动pip install吧。别急,用pip install . 命令即可全部安装,其中最后的 .代表全部,不能省略。

现在,我们可以选择在命令行中直接进到...\ml-agents-master\python中,输入pip install . ,或者为了方便环境管理,也可以用Anaconda先建一个环境,然后在环境中安装库。这里选择了后者。

在Anaconda Prompt中用 conda create -n ML-Agent python=3.6 或者在Anaconda Navigator中创建,如图(注意要选3.x版本)。
创建Python环境
打开终端
打开终端
依次输入cd E:\Python\ml-agents-master\python(对应ML-Agent中python文件夹的路径)、:E(上述文件夹的根目录)和pip install .
安装库
好了,万事俱备,现在可以愉快地开始了。


使用篇

设置并生成工程

用Unity打开...\ml-agents-master\unity-environment,在Example中选择Tennis网球游戏,说是网球,但其游戏规则更类似于羽毛球,双方互相击球,不能让球在己方落地或打出界。
网球游戏
在这个游戏中,会有一个老师和一个学生,我们需要给老师附上预设的模型(...\Assets\ML-Agents\Examples\Tennis\TFModels\Tennis.bytes),来训练学生。

首先将TeacherBrain的BrainType改为Internal,这个时候会发现报错了,点击show me how,可以看到在文档最后给出了解决方案

原来我们还缺了关键的一环,预设的模型有了,但是在Unity中怎么运行TensorFlow来用这个模型呢?这就要用到TFSharpPlugin.unitypackage 了,这个插件中有Tensorflow Sharp封装成的动态链接库,而后者是Tensorflow的C#版本。导入完后还需如下设置。
Setting
Setting
好,现在我们可以把模型导入到TeacherBrain中了。
Teacher
接下来还需要将StudentBrain的BrainType设为External,才能从外部操控和训练。
Student
然后Build。
Build


训练模型

得到运行程序后,依然是打开终端,进入刚才的python文件夹,输入python learn.py E:\Unity\TennisTrain\TennisTrain.exe --run-id=TennisTrain --train(其中E:\Unity\TennisTrain\TennisTrain.exe是刚才Build出来的程序路径,run-id=TennisTrain则是完成训练后存放的路径,在...\ml-agents-master\python\model 下 ),然后就开始训练了。
训练
训练动图


导入模型并运行

训练得到的模型就保存在...\ml-agents-master\python\model\TennisTrain 下,将其复制到工程中,与之前对TeacherBrain的处理类似,我们将得到的模型导入到StudentBrain中。
Student
然后运行就可以了。

不愧是ML-Agent和TensorFlow,效果拔群。
训练效果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值