Unity ML-Agent实践——环境搭建

提示:转载请注明出处,若本文无意侵犯到您的合法权益,请及时与作者联系。


一、什么是Unity ML-Agents

Unity ML-Agents是Unity公司推出的一款用于在Unity上使用的进行机器学习开源的Unity 插件工具包,其全称为Unity Machine Learning Agents。该工具包标志着Unity开始正式尝试进军机器学习领域的,它们希望未来的游戏开发者在Unity中也能方便地使用人工智能技术,人工智能的研究人员也可以尝试使用Unity来进行研究。

Unity ML-Agents是基于TensorFlow的封装工具包,提供了多个先进的机器学习算法,可以使用 reinforcement learning(强化学习)、imitation learning(模仿学习)、neuroevolution(神经进化)或其他机器学习方法, 通过简单易用的 Python API进行控制对 Agent 进行训练,让游戏开发者和业余爱好者能够轻松地 训练用于 2D、3D 和 VR/AR 游戏的智能 agent。ML-Agents 的使用对象可以是研究人员、游戏开发人员或者业余爱好者等,使用ML-Agents需要具备三方面的知识背景:Unity、机器学习和Tensorflow。

该插件的源码及说明文档可以直接从GitHub上的Unity官方账户下载。这里给出GitHub传送门

二、Unity ML-Agents的结构

ML-Agents 是一个 Unity 插件,它包含三个高级组件:

高级组件名称

高级组件说明

学习环境(Learning Environment)

Unity场景及其中的游戏角色,属于Unity

外部通信器(External Communicator)

Unity环境与PythonAPI通信的组件,属于Unity

Python API

包含用于训练的所有机器学习算法,不属于Unity

三个高级组件的关系如下:

学习环境包含三个可以帮助组织Unity场景的附加组件:

附加组件名称

附加组件说明

代理(Agent)

附加到一个Unity游戏对象上,负责生成它的观测结果、执行它接收的动作 并适时分配奖励(正/负)。 每个 Agent 只与一个 Brain 相关联。

大脑(Brain)

封装了 Agent 的决策逻辑,保存了每个Agent的policy,是负责从 Agent 接收观测结果和奖励并返回动作的组件。一个Brain可以连接多个Agent,但要求这些Agent具备相似的观测空间和动作空间,同一个Brain每个Agent在相同时刻可能会得到不同的观测值和动作值。

研究院(Academy)

它指挥 agent 的观测和决策过程。 在 Academy 内,可以指定若干环境参数, 例如渲染质量和环境运行速度参数。 External Communicator 位于 Academy 内。

整体的组织关系如下:

三、安装Unity ML-Agents

1、安装Anaconda

使用Anaconda4.3以上的,使其包含python3.6,安装好即可,可以参考博客:环境安装——Anaconda安装(https://blog.csdn.net/qq_41959920/article/details/109095410)

2、建立虚拟环境

这里我们使用一个新的虚拟环境和之前的安装组件分开。

打开Anaconda Prompt在cmd中输入以下命令行来创建一个虚拟环境,注意python选择使用3.6:

>conda create --name Unity_Lab python=3.6

3、安装mlagents

Anaconda Prompt中输入activate Unity_Lab 来激活之前的虚拟环境

接下来安装mlagents,可以直接输入下面的命令从清华镜像安装最新版的mlagents:

pip install mlagents==0.19.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

安装mlagents过程中pip会下载很多必备的包,包括tensorflow,由于默认安装的包基本都是最新版的,所以可能会出现响应的兼容问题,如果有红字提醒报错,先尝试按照提示进行修改,以下是作者安装的版本:

Anaconda3+python3.6.10+numpy1.16.0+tensorflow2.3.0+mlagents0.19.0

四、新建unity工程项目

笔者使用Unity2019.4.9f1来进行演示。

1、打开Unity,新建工程

2、安装Barracuda包

Unity Barracuda是一个专为Unity设计的轻量级的跨平台的神经网络接口库,它能在CPU和GPU上运行神经网络。

在菜单Window/Package Manager中打开包管理面板,在该面板中搜索并安装 Barracuda包(如果不安装则会在导入ML-Agents包时出错)

安装好后可以在工程的Packages包中进行查看:

3、添加Editor、Plugins、Runtimes文件夹

把ml-agents-master /com.unity.ml.agents文件夹中的Editor 、Plugins、Runtime 导入Unity项目中。

猜你喜欢

转载自blog.csdn.net/qq_41959920/article/details/109100001