亲宝软件园·资讯

展开

[2020.03]Unity ML-Agents v0.15.0 环境部署与试运行

煦阳 人气:0
## 一、ML-Agents简介 近期在学习Unity中的机器学习插件ML-Agents,做一些记录,用以简单记录或交流学习。 先简单说一下机器学习使用的环境场景:**高视觉复杂度**(Visual Complexity,例如星际争霸、Dota2职业玩家与AI竞技)、**高物理复杂度**(Physical Complexity,例如模拟两足、四足生物行走,这里Unity ML-Agents官方也有相关例子)、**高认知复杂度**(Congnitive Complexity,例如AlphaGo)。以上几种场景利用传统算法较难搞,而利用机器学习,会更加容易解决这些问题。 而ML-Agents(Machine Learning Agents),则是Unity中使用的一款开源机器学习插件,利用该插件,可以实现一些游戏对象的智能操作。例如控制 NPC 行为(采用各种设置, 例如多个 agent 和对抗)、对游戏内部版本进行自动化测试、以及评估不同游戏设计决策的预发布版本等等。 ML-Agents中主要有两种学习方法:**强化学习**(Reinforcement Learning)和**模仿学习**(Imitation Learning),它们各自特点如下: - 强化学习:通过奖励(Reward)学习;试错;超高速模拟;代理(Agent)在任务中趋向“最优”。官方最开始几个例子都是强化学习。 ![image-20200308224836359](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309114104image-20200308224836359.png) 如上图,其中Agent就是在游戏对象上的代理,通过外部环境(这里在训练的时是利用外部PythonAPI,或是使用训练好的TensorFlow模型)根据Agent的行为(Action)来返回激励(状态或是奖励),Agent接收到激励后,再改变自己的行为反馈给外部环境,从而形成闭环学习过程。 - 模仿学习:通过示例(demonstration)学习;没有奖励的必要;实时交互;代理(Agent)在任务中趋向“人一样的行为”。 ![image-20200308225832236](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309135409image-20200308225832236.png) AI会借助特定模仿对象的行为学习,实际操作中AI会实时收集老师的示范操作,帮助学习,在实时交互的过程中,让AI更趋向人的行为。 更多ML-Agents的介绍会在之后记录,例如ML-Agents的架构等等。 ## 二、环境部署及各软件版本 主要下载这么几个东西(附带版本号,近期入手的,所以版本都整最新的搞起【2020.03.08】): - **Unity 2019.2.0f1 (64-bit)**。这里用的是Unity2019.2版本,其他版本应该也行,最好2018保底。 - **ml-agents v0.15.0**。官方ml-agents更新有点快,因为我最近学,所以也上最新master的了,但并不是稳定版本,与之前ml-agents有所区别,而且发现不需要在场景中建立附加Academy脚本的物体了,这玩意在最新版里搞成单例了。 - **CUDA v10.2.89**。这个主要和显卡型号好像有关系,我的是RTX2070,我看网上有些是让下载CUDA_8.0,好像和我显卡不能匹配 - **cuDNN v7.6.5**。这个又是和CUDA进行匹配的,下面会讲到。 - **Anaconda3 v2019.10**。另外我建立的工程中,**Python版本是v3.7.6**,**TensorFlow的版本对应是2.0.1**。 下面一一讲解如何对这些进行安装。 ## 三、安装CUDA与cuDNN CUDA与cuDNN是干啥的,贴网上两段话:“CUDA是NVIDIA推出的CUDA运算平台的工具集,CUDA提供了一个强大的开发环境,用于开发高性能的GPU加速应用。通过CUDA,你能开发、优化和部署你的应用在多种平台,例如GPU加速嵌入式系统、桌面工作站,企业数据中心,云平台和HPC超级计算机。”、“cuDNN专门针对深度神经网络框架设计的一套GPU计算加速方案。全世界的深度学习研究者和框架开发者都使用CUDNN来增强GPU计算性能。”这里其实不太清楚对A卡是咋适配的,所以我默认使用的都是N卡。。。 简而言之,这两个东西就是给显卡配置环境的,让你的显卡具有机器计算的环境。话不多说,直接开始: ### 1、下载CUDA v10.2 地址:https:/https://img.qb5200.com/download-x/developer.nvidia.com/cuda-downloads 现在点进去应该直接就是10.2版本的下载,不是的话点击“Legacy Releases”找,也可以直接下载最新的试试看。我是Windows系统,因此以Windows为例(别的系统。。还是自己再找找有没有别的配置方案)。 ![image-20200308233455509](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309135500image-20200308233455509.png) 点击之后出现如下画面,可以照我的选。 ![image-20200308233559759](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309135549image-20200308233559759.png) 这里面**Version**是选系统的版本。**Installer Type**就是选择安装类型,如果选择exe(local),那就是要下载CUDA完整包,前面的exe(network)会利用官方的下载器下载。两个都可以试试,看哪个快,我是用下载器下载比较快。 ### 2、安装CUDA **注意**:开始安装CUDA前,需要关闭任何正在运行的Unity和Visual Studio程序。 如果下载network类型的话,下载好后直接打开,解压地址随意选择,点OK。出现如下画面。 ![image-20200308233854835](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309135555image-20200308233854835.png) **注意**:这里会检查系统的兼容性,如果不兼容的话,它会有Warning的提示,要是没有直接显示同意NVIDIA软件许可协议的话,就要注意了,这里应该是CUDA的版本与你的显卡不兼容,所以可以试着换个低版本的CUDA下载安装。 如果CUDA版本与显卡版本匹配的话直接显示许可协议同意,如下图。 ![image-20200308234424555](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309135602image-20200308234424555.png) ![image-20200308234446276](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309135607image-20200308234446276.png) 后面的可以都默认,一路“下一步”,装完就OK。 ### 3、安装cuDNN v10.2 地址:https:/https://img.qb5200.com/download-x/developer.nvidia.com/cudnn 在页面中选择“Download cuDNN”。 ![image-20200308235312423](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309135612image-20200308235312423.png) 点击后,会出现以下画面,这里我们需要有一个NVIDIA的账号,有的话直接登录,没有的话花2分钟注册一个登录即可。 ![image-20200308235338789](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309135624image-20200308235338789.png) 我这里直接登录,出现的画面中点击“I Agree to the Terms of the……”。 ![image-20200308235621582](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309135635image-20200308235621582.png) 这里我们选择和之前CUDA对应的版本来下载,之前我们下载的是CUDA 10.2,因此直接选择第一个就行。打开选项后选择对应系统版本进行下载,我们这里选择Win10。 ![image-20200308235953942](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309135734image-20200308235953942.png) 下载之后是一个压缩包,如下。 ![image-20200309000122266](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309135744image-20200309000122266.png) 解压之后,将解压文件中的“bin”、“include”、“lib”三个文件夹覆盖到之前CUDA安装的路径下,如果之前CUDA安装时未改路径的话,应该是这个路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2 ![image-20200309000352115](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309135800image-20200309000352115.png) 至此,CUDA和cuDNN安装完毕,下面还要对“环境变量”进行配置。 ### 4、设置环境变量和路径 在开始菜单中,搜索“envir”,总之进入“编辑系统环境变量”。 ![image-20200309000710387](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309135922image-20200309000710387.png) 点击“环境变量”。 ![image-20200309000837740](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309135929image-20200309000837740.png) 然后在“系统变量”中点击“新建”,按下图输入。 ![image-20200309001338356](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140041image-20200309001338356.png) **注意**,上面是用户的环境变量,下面是系统的环境变量,我之前没注意,都把这些变量加到上面去了,不过应该只要用自己的用户登录都行,大家可以把变量加到下面去。 然后还要在在系统变量的“Path”中加入两个路径。 ![image-20200309001554219](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140057image-20200309001554219.png) ![image-20200309001630091](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140109image-20200309001630091.png) 以上就是CUDA和cuDNN的环境变量配置,之后装AnaConda3还需要进行环境变量配置,之后会有写到。 ## 四、安装Anaconda ### 1、下载Anaconda3 2019.10 地址:https://www.anaconda.comhttps://img.qb5200.com/download-x/distribution/ 进入网站后,找到下面的截图,按自己的系统需要下载。 ![image-20200309195153026](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140132image-20200309195153026.png) 下载好后,进行安装。 ![image-20200309195442912](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140214image-20200309195442912.png) 一路下一步就行,最好选择默认路径进行安装,里面的选项选不选也随意,然后Install就行。 ### 2、Anaconda环境配置 这一步应该不是必须的,但以防万一,还是配置一下。还是进入“编辑系统环境变量”,在系统变量(或用户变量)的Path里新建以下四个地址(这里的地址是根据之前Anaconda安装路径来设定的,我这里的路径是默认路径): ![image-20200309200025017](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140309image-20200309200025017.png) ## 五、ml-agents环境配置 ### 1、下载ml-agents源码 下载地址:https://github.com/Unity-Technologies/ml-agents 我下的是master分支上的,也就是2020年3月5号左右,版本是0.15.0。 ![image-20200309200717935](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140327image-20200309200717935.png) 当然,在git上下载太慢了,而且下下来可能压缩包还包含错误,坑的呀批。所以建议利用码云下载,快捷方便,具体可以看下面网址的教程: https://blog.csdn.net/TeFuirnever/articlehttps://img.qb5200.com/download-x/details/99110367 下载好后在任意地方解压,如下。 ![image-20200309201509528](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140350image-20200309201509528.png) 以上源码下载好后,以作备用,下面先配置Anaconda。 ### 2、Anaconda换源 在用Anaconda创建环境时,会自动下载相应的依赖库,包括python、tensorflow、pip、wheel等等。虽然我也不知道这些是干啥的。。。但是默认用国外的地址下载慢的要死,而且很有可能在创建环境时失败! 所以需要换下载这些库的地址,方法很多,网上很多是敲命令行,我这里直接修改配置文件来换源。找到C:\Users\\<你的用户名>文件下,有一个名为“.condarc”文件,则是Anaconda的配置文件,打开进行编辑。 ![image-20200309202631660](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140447image-20200309202631660.png) 可以直接按我的进行配置,我配置的是清华的镜像源,里面好像还乱入了个中科大的。 https://mirrors.ustc.edu.cn/anaconda/pkgs/free/ https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 然后保存,进行下面的步骤。 ### 3、Anaconda创建环境 Anaconda的环境创建可以用Anaconda Prompt,也就是命令行来建立,也可以利用Anaconda Nvigator来创建,后者主要是可视化的创建过程。这玩意其实就是搭建训练平台,之后Unity中的项目训练通过socket和Anaconda中你搭建好的mlagents环境进行通信,实现训练过程。 首先找到“Anaconda Navigator”运行。 ![image-20200309201747142](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140515image-20200309201747142.png) 运行后找到“Environments”,新装的里面只有一个“base(root)”,我这里之前已经建立好了一个ML_Agents,不用管它,我们新建一个,点击“Create”。如下图: ![image-20200309203109071](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140526image-20200309203109071.png) 点击后,出现如下对话框,其中Name随意写,Python版本就选3.7。 ![image-20200309203221765](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140536image-20200309203221765.png) 然后建立,会等一会儿,可以看到右下角有进度条不停滑动,如果这里滑动半天,最后提示失败,那就说明是因为依赖库没有下载下来,那你就需要参考前面的“Anaconda换源”来换个镜像地址试试看。 这里如果成功的话,我们进行下一步。 ![image-20200309203428520](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140547image-20200309203428520.png) 建立成功后,例如我建立的环境叫“EnvirExample”,然后点击三角符号,“Open Terminal”,这个时候我们就进入命令台模式了,之后都需要在这里输入命令进行操作。 ![image-20200309203632647](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140557image-20200309203632647.png) 到这里后,我们cd到之前下好ml-agents源码解压的地方,例如我这里是桌面地址,则输入如下命令:cd https://img.qb5200.com/download-x/d C:\Users\Xu\Desktop\ml-agents ,然后回车。 ![image-20200309204043416](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140614image-20200309204043416.png) 然后,下面需要恢复ml-agents需要的库,这里需要装两个文件夹里的东西,分别是ml-agents-envs和ml-agents。 ![image-20200309204432337](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140622image-20200309204432337.png) 因此,下一步我们在命令行里先敲: pip install -e ml-agents-envs 。如下: ![image-20200309204602567](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140632image-20200309204602567.png) 按理来说,这里会进行就会自动下载依赖文件了,结果我在这里卡了好久,可能会出现以下错误: ![image-20200309204653600](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140643image-20200309204653600.png) 整了半天,还有各种别的错误出现,最后总结出来的原因是,因为镜像站太慢或者是没有相对应的库,因此找到了解决方案: http://www.manongjc.comhttps://img.qb5200.com/download-x/detail/8-newslizewxdvgby.html 上面的地址是解决方法,也可以不用看,在这一步,我们只需要修改命令为: pip install -e ml-agents-envs -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 这样的话,就可以通过豆瓣镜像下载库了,这里大坑。成功后的样子: ![image-20200309205124208](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140654image-20200309205124208.png) 然后,用同样的方法下载ml-agents文件架下的库,命令如下: pip install -e ml-agents -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 若成功则显示如下: ![image-20200309205630878](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140709image-20200309205630878.png) 上面的样子可能长得不一样,总之如果安装成功,那命令行里肯定没有类似黄色、红色的字体,就说明这两个文件夹中的环境配置成功了!最麻烦的配置已经过去了。下面我们就可以开始使用了!!激动激动~ ## 六、ML-Agents试运行 ### 1、Unity官方训练示例 我们这里直接用一个ml-agents官方的实例来实验一下,先打开Unity,打开官方的项目,官方项目就在ml-agents源码的“Project”文件夹中,如下图: ![image-20200309210040279](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140718image-20200309210040279.png) 我用2019直接打开,会提示我源工程版本较老,自动升级一下就行。 打开项目后,我们在Project->Assets->ML-Agents->Examples->3DBall->Scenes->中找到3DBall场景,如下: ![image-20200309210257060](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140728image-20200309210257060.png) 这里我们可以直接运行,可以看到12个小平台努力不让球掉落,这里每个平台的Agent已经有官方训练好的Model了,后缀名为.nn,如下图: ![image-20200309210618327](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140737image-20200309210618327.png) ![image-20200309210631939](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140747image-20200309210631939.png) 我们用ml-agents中的强化学习时,其实就是预先没有这个训练模型(即这个.nn文件),我们自己需要训练一个出来。 ### 2、训练一个自己的模型出来 Unity先停止运行。 打开我们之前在Anaconda中的控制台,之前安装完环境应该还没关,当然要是关了重新打开的话,记的还是要选择我们创建的环境,我的是“EnvirExample”,然后打开Terminal。同时还要cd到ml-agents的目录去,我的在桌面,则输入:cd https://img.qb5200.com/download-x/d C:\Users\Xu\Desktop\ml-agents 。 ![image-20200309211147475](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140755image-20200309211147475.png) 总之需要满足前面括号里是你创建的环境,后面是ml-agents源码目录。 然后输入以下命令,准备开始训练: mlagents-learn config\trainer_config.yaml --run-id=test01 --train ![image-20200309211724775](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140804image-20200309211724775.png) 这里第二个“config\trainer_config.yaml”就是源文件中对此次训练的配置文件。 ![image-20200309212430646](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140812image-20200309212430646.png) 出现画面后,切换到Unity上开始运行项目。就可以进行训练啦~ ![image-20200309213106029](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140821image-20200309213106029.png) 这个例子应该会训练500000步,训练完后,会输出相应的模型文件。 ![image-20200309213900590](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140832image-20200309213900590.png) ![image-20200309213947804](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140843image-20200309213947804.png) 这里就是训练出的模型,可以替换Unity中的模型文件,试试看自己训练出的数据。 在控制台里,还可以输入一下命令查看训练图: tensorboard --logdir=summaries ![image-20200309214512814](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140852image-20200309214512814.png) 然后在浏览器里复制地址,我这里的是http://localhost:6006/。打开之后就可以看到训练统计数据了~ ![image-20200309214638672](https://images.cnblogs.com/cnblogs_com/gentlesunshine/1665373/o_200309140902image-20200309214638672.png) 至此,ml-agents的配置和初运行就大功告成啦~! 引用:https://www.bilibili.com/video/av49257917?from=search&seid=5553688680482591789 https://blog.csdn.net/u014361280/articlehttps://img.qb5200.com/download-x/details/102782486#%E4%B8%80%E3%80%81ML-Agents%20%E4%BB%8B%E7%BB%8D https://mp.weixin.qq.com/s?__biz=MzU5MjQ1NTEwOA==&mid=2247490308&idx=1&sn=083e136e78c03836b766703bd33447ac&chksm=fe1e2fafc969a6b930497cf39727158072a688cfa6dcea7b9061c4b3aa2c005bb6a9f72c0302&scene=21#wechat_redirect https://github.com/Unity-Technologies/ml-agents/

加载全部内容

相关教程
猜你喜欢
用户评论