一、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)在任务中趋向“最优”。官方最开始几个例子都是强化学习。

    如上图,其中Agent就是在游戏对象上的代理,通过外部环境(这里在训练的时是利用外部PythonAPI,或是使用训练好的TensorFlow模型)根据Agent的行为(Action)来返回激励(状态或是奖励),Agent接收到激励后,再改变自己的行为反馈给外部环境,从而形成闭环学习过程。

  • 模仿学习:通过示例(demonstration)学习;没有奖励的必要;实时交互;代理(Agent)在任务中趋向“人一样的行为”。

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.6TensorFlow的版本对应是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://developer.nvidia.com/cuda-downloads

现在点进去应该直接就是10.2版本的下载,不是的话点击“Legacy Releases”找,也可以直接下载最新的试试看。我是Windows系统,因此以Windows为例(别的系统。。还是自己再找找有没有别的配置方案)。

点击之后出现如下画面,可以照我的选。

这里面Version是选系统的版本。Installer Type就是选择安装类型,如果选择exe(local),那就是要下载CUDA完整包,前面的exe(network)会利用官方的下载器下载。两个都可以试试,看哪个快,我是用下载器下载比较快。

2、安装CUDA

注意:开始安装CUDA前,需要关闭任何正在运行的Unity和Visual Studio程序。

如果下载network类型的话,下载好后直接打开,解压地址随意选择,点OK。出现如下画面。

注意:这里会检查系统的兼容性,如果不兼容的话,它会有Warning的提示,要是没有直接显示同意NVIDIA软件许可协议的话,就要注意了,这里应该是CUDA的版本与你的显卡不兼容,所以可以试着换个低版本的CUDA下载安装。

如果CUDA版本与显卡版本匹配的话直接显示许可协议同意,如下图。

后面的可以都默认,一路“下一步”,装完就OK。

3、安装cuDNN v10.2

地址:https://developer.nvidia.com/cudnn

在页面中选择“Download cuDNN”。

点击后,会出现以下画面,这里我们需要有一个NVIDIA的账号,有的话直接登录,没有的话花2分钟注册一个登录即可。

我这里直接登录,出现的画面中点击“I Agree to the Terms of the……”。

这里我们选择和之前CUDA对应的版本来下载,之前我们下载的是CUDA 10.2,因此直接选择第一个就行。打开选项后选择对应系统版本进行下载,我们这里选择Win10。

下载之后是一个压缩包,如下。

解压之后,将解压文件中的“bin”、“include”、“lib”三个文件夹覆盖到之前CUDA安装的路径下,如果之前CUDA安装时未改路径的话,应该是这个路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2

至此,CUDA和cuDNN安装完毕,下面还要对“环境变量”进行配置。

4、设置环境变量和路径

在开始菜单中,搜索“envir”,总之进入“编辑系统环境变量”。

点击“环境变量”。

然后在“系统变量”中点击“新建”,按下图输入。

注意,上面是用户的环境变量,下面是系统的环境变量,我之前没注意,都把这些变量加到上面去了,不过应该只要用自己的用户登录都行,大家可以把变量加到下面去。

然后还要在在系统变量的“Path”中加入两个路径。

以上就是CUDA和cuDNN的环境变量配置,之后装AnaConda3还需要进行环境变量配置,之后会有写到。

四、安装Anaconda

1、下载Anaconda3 2019.10

地址:https://www.anaconda.com/distribution/

进入网站后,找到下面的截图,按自己的系统需要下载。

下载好后,进行安装。

一路下一步就行,最好选择默认路径进行安装,里面的选项选不选也随意,然后Install就行。

2、Anaconda环境配置

这一步应该不是必须的,但以防万一,还是配置一下。还是进入“编辑系统环境变量”,在系统变量(或用户变量)的Path里新建以下四个地址(这里的地址是根据之前Anaconda安装路径来设定的,我这里的路径是默认路径):

五、ml-agents环境配置

1、下载ml-agents源码

下载地址:https://github.com/Unity-Technologies/ml-agents

我下的是master分支上的,也就是2020年3月5号左右,版本是0.15.0。

当然,在git上下载太慢了,而且下下来可能压缩包还包含错误,坑的呀批。所以建议利用码云下载,快捷方便,具体可以看下面网址的教程:

https://blog.csdn.net/TeFuirnever/article/details/99110367

下载好后在任意地方解压,如下。

以上源码下载好后,以作备用,下面先配置Anaconda。

2、Anaconda换源

在用Anaconda创建环境时,会自动下载相应的依赖库,包括python、tensorflow、pip、wheel等等。虽然我也不知道这些是干啥的。。。但是默认用国外的地址下载慢的要死,而且很有可能在创建环境时失败!

所以需要换下载这些库的地址,方法很多,网上很多是敲命令行,我这里直接修改配置文件来换源。找到C:\Users\文件下,有一个名为“.condarc”文件,则是Anaconda的配置文件,打开进行编辑。

可以直接按我的进行配置,我配置的是清华的镜像源,里面好像还乱入了个中科大的。

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”运行。

运行后找到“Environments”,新装的里面只有一个“base(root)”,我这里之前已经建立好了一个ML_Agents,不用管它,我们新建一个,点击“Create”。如下图:

点击后,出现如下对话框,其中Name随意写,Python版本就选3.7。

然后建立,会等一会儿,可以看到右下角有进度条不停滑动,如果这里滑动半天,最后提示失败,那就说明是因为依赖库没有下载下来,那你就需要参考前面的“Anaconda换源”来换个镜像地址试试看。

这里如果成功的话,我们进行下一步。

建立成功后,例如我建立的环境叫“EnvirExample”,然后点击三角符号,“Open Terminal”,这个时候我们就进入命令台模式了,之后都需要在这里输入命令进行操作。

到这里后,我们cd到之前下好ml-agents源码解压的地方,例如我这里是桌面地址,则输入如下命令:cd /d C:\Users\Xu\Desktop\ml-agents ,然后回车。

然后,下面需要恢复ml-agents需要的库,这里需要装两个文件夹里的东西,分别是ml-agents-envs和ml-agents。

因此,下一步我们在命令行里先敲: pip install -e ml-agents-envs 。如下:

按理来说,这里会进行就会自动下载依赖文件了,结果我在这里卡了好久,可能会出现以下错误:

整了半天,还有各种别的错误出现,最后总结出来的原因是,因为镜像站太慢或者是没有相对应的库,因此找到了解决方案:

http://www.manongjc.com/detail/8-newslizewxdvgby.html

上面的地址是解决方法,也可以不用看,在这一步,我们只需要修改命令为:

pip install -e ml-agents-envs -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

这样的话,就可以通过豆瓣镜像下载库了,这里大坑。成功后的样子:

然后,用同样的方法下载ml-agents文件架下的库,命令如下:

pip install -e ml-agents -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

若成功则显示如下:

上面的样子可能长得不一样,总之如果安装成功,那命令行里肯定没有类似黄色、红色的字体,就说明这两个文件夹中的环境配置成功了!最麻烦的配置已经过去了。下面我们就可以开始使用了!!激动激动~

六、ML-Agents试运行

1、Unity官方训练示例

我们这里直接用一个ml-agents官方的实例来实验一下,先打开Unity,打开官方的项目,官方项目就在ml-agents源码的“Project”文件夹中,如下图:

我用2019直接打开,会提示我源工程版本较老,自动升级一下就行。

打开项目后,我们在Project->Assets->ML-Agents->Examples->3DBall->Scenes->中找到3DBall场景,如下:

这里我们可以直接运行,可以看到12个小平台努力不让球掉落,这里每个平台的Agent已经有官方训练好的Model了,后缀名为.nn,如下图:

我们用ml-agents中的强化学习时,其实就是预先没有这个训练模型(即这个.nn文件),我们自己需要训练一个出来。

2、训练一个自己的模型出来

Unity先停止运行。

打开我们之前在Anaconda中的控制台,之前安装完环境应该还没关,当然要是关了重新打开的话,记的还是要选择我们创建的环境,我的是“EnvirExample”,然后打开Terminal。同时还要cd到ml-agents的目录去,我的在桌面,则输入:cd /d C:\Users\Xu\Desktop\ml-agents 。

总之需要满足前面括号里是你创建的环境,后面是ml-agents源码目录。

然后输入以下命令,准备开始训练:

mlagents-learn config\trainer_config.yaml --run-id=test01 --train

这里第二个“config\trainer_config.yaml”就是源文件中对此次训练的配置文件。

出现画面后,切换到Unity上开始运行项目。就可以进行训练啦~

这个例子应该会训练500000步,训练完后,会输出相应的模型文件。

这里就是训练出的模型,可以替换Unity中的模型文件,试试看自己训练出的数据。

在控制台里,还可以输入一下命令查看训练图:

tensorboard --logdir=summaries

然后在浏览器里复制地址,我这里的是http://localhost:6006/。打开之后就可以看到训练统计数据了~

至此,ml-agents的配置和初运行就大功告成啦~!

引用:https://www.bilibili.com/video/av49257917?from=search&seid=5553688680482591789

https://blog.csdn.net/u014361280/article/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/

[2020.03]Unity ML-Agents v0.15.0 环境部署与试运行的更多相关文章

  1. CentOS7+ApacheServer2.4+MariaDB10.0+PHP7.0+禅道项目管理软件8.0环境部署

    CentOS7+ApacheServer2.4+MariaDB10.0+PHP7.0+禅道项目管理软件8.0环境部署 by:授客 QQ:1033553122 目录 一. 二. 三. 四. 五. 六. ...

  2. Centos下堡垒机Jumpserver V3.0环境部署完整记录(1)-安装篇

    由于来源身份不明.越权操作.密码泄露.数据被窃.违规操作等因素都可能会使运营的业务系统面临严重威胁,一旦发生事故,如果不能快速定位事故原因,运维人员往往就会背黑锅.几种常见的运维人员背黑锅场景:1)由 ...

  3. Centos下堡垒机Jumpserver V3.0环境部署完整记录(2)-配置篇

    前面已经介绍了Jumpserver V3.0的安装,基于这篇安装文档,下面说下Jumpserver安装后的的功能使用: 一.jumpserver的启动 Jumpserver的启动和重启 [root@t ...

  4. 分布式边缘容器项目 SuperEdge v0.7.0 版本来袭!

    作者 SuperEdge 开发者团队,腾讯云容器中心TKE Edge团队 摘要 SuperEdge是基于原生Kubernetes的分布式边缘云容器管理系统,由腾讯云牵头,联合英特尔.VMware威睿. ...

  5. 关于ML.NET v0.8的发布说明

    ML.NET允许您创建和使用针对场景的机器学习模型,以实现常见任务,如情绪分析,问题分类,预测,推荐,欺诈检测,图像分类等.您可以使用ML.NET示例在GitHub仓库中查看这些常见任务 .ML.NE ...

  6. 2、kubeadm快速部署kubernetes(v1.15.0)集群190623

    一.网络规划 节点网络:192.168.100.0/24 Service网络:10.96.0.0/12 Pod网络(默认):10.244.0.0/16 二.组件分布及节点规划 master(192.1 ...

  7. CentOS 7.5 通过kubeadm部署k8s-1.15.0

    kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验k ...

  8. 关于ML.NET v0.6的发布说明

    ML.NET 0.6版本提供了几项令人兴奋的新增功能: 用于构建和使用机器学习模型的新API 我们主要关注的是发布用于构建和使用模型的新ML.NET API的第一次迭代.这些新的,更灵活的API支持新 ...

  9. 关于ML.NET v0.5的发布说明

    适逢.NET Conf 2018举办,ML.NET v0.5也正式宣布发布了.作为面向.NET开发人员的跨平台开源机器学习框架,新的预览版本在不断演变,每次发布除了有新的功能添加,API也会进行调整, ...

随机推荐

  1. “pip install tensorflow ”出现错误

    在控制台命令窗口输入:pip install tensorflow之后出现一长串bug怎么解决 网上百度了一些方法: 安装Python3.5 安装Python3.6 总结原因:Python3.7没有合 ...

  2. windows下面apache配置虚拟目录(测试使用,发布网站不建议目录访问)

    windows下面是这样简单设置 1 Apache虚拟目录: 针对某一目录可以这么设置: Alias /aidd2008 "D:/php/web/aidd2008" <Dir ...

  3. Linux下安装mysql(yun方式)

    1.进入下载好的mysql版本 cd /usr/local/mysql 2.解压安装包 tar -xzvf mysql-5.7.11.tar.gz 3.改名 直接改或者 mv  文件名 要改的文件名m ...

  4. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-setup(4)

    unittest封装测试类,setup对每个用例都要执行的函数进行初始化[初始化是自己的叫法] import unittest from day_20200208_mooc.base.interfac ...

  5. inventor卸载/完美解决安装失败/如何彻底卸载清除干净inventor各种残留注册表和文件的方法

    在卸载inventor重装inventor时发现安装失败,提示是已安装inventor或安装失败.这是因为上一次卸载inventor没有清理干净,系统会误认为已经安装inventor了.有的同学是新装 ...

  6. stress施压案例分析——cpu、io、mem【命令分析】

    stress施压命令分析 一.stress --cpu 1 --timeout 600  分析现象?负载为啥这么高?top命令查看用户进程消耗的cpu过高(stress进程消耗的) 分析现象,可以看出 ...

  7. 如何手动添加jar包到本地maven仓库

    环境 win10    idea工具 1.确认已经安装好 mvn环境   MAVEN_HOME   D:\Tool\apache-maven-3.5.2 Path %MAVEN_HOME%\bin 2 ...

  8. H5 video 标签 详解

    昨天使用H5  video 标签 写了视频播放   本打算参考爱奇艺的代码进行修改  发现 它是动态数据  静态页面需要拆解代码 我情急之下  使用了  video   整理一下笔记   后面有人用 ...

  9. linux find命令格式及find命令详解

    本文详细介绍了linux find命令格式及find命令案例,希望对您的学习有所帮助.1.find命令的一般形式为:find pathname -options [-print -exec -ok . ...

  10. canvas基本

    基本 支持ie 9+,firefox,opera,chrome,safari html: <canvas id="fir_canvas" width="400&qu ...