目录
Unity ML-Agents 之 环境的搭建,以及的 demo 测试
一、ML-Agents 介绍
二、环境要求
三、配置GPU训练环境
四、安装Anaconda和Python 3 搭建步骤
五、ml-agent 环境配置
六、在Unity中进行使用
七、查看训练数据
八、报错处理
Unity机器学习Agent(ML-Agents)是一款开源的Unity插件,可让游戏和模拟作为训练智能Agent的环境。通过简单易用的Python API,Agent可以使用强化学习,模仿学习,神经元演化或其他机器学习方法进行训练。
我们还提供最新算法的实现(基于TensorFlow),使游戏开发者和业余爱好者能够轻松地为2D,3D和VR / AR游戏训练智能Agent。这些受过训练的Agent可以用于多种目的,包括控制NPC行为(在多种Agent和敌对情况下的各种设置中),游戏构建的自动化测试和评估不同游戏设计的预发布决策。 ML-Agents对于游戏开发者和AI研究人员来说都是互利的,因为它提供了一个中央平台,可以在Unity的丰富环境中评估AI的优势,然后得到更广泛的研究和游戏开发者社区的青睐。
在Unity使用中,虽然名字也叫做机器学习ML,但是主要内容还是增强学习RL(或者叫强化学习)。其实并没有错,ML中主要包括监督学习、非监督学习和增强学习三种范式,只是Unity这里并没有监督学习和非监督学习的内容。
官方推荐环境如下(最低要求吧):
1、下载并安装CUDA 9.0 通用并行计算架构
(注意:在安装之前,必须保证关掉任何正在运行的Unity或者Visual Studio程序。)
https://developer.nvidia.com/cuda-90-download-archive
2、下载 Nvidia cuDNN 深度神经网络的GPU加速库(需要注册Nvdia账号,而且注意版本要for CUDA 9.0)
https://developer.nvidia.com/cudnn
3、 添加cuDNN库到CUDA 9.0
将下载好的cuDNN库cuda目录的三个文件夹(bin,include,lib),复制覆盖到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0文件夹里。
4、再次更改环境变量
添加系统变量:"CUDA_HOME",变量值为
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
编辑系统变量"Path",添加如下路径:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\CUPTI\libx64
1、因为Unity使用 Visual Studio ,所以我们能使用 Visual Studio 进行搭建
2、点击 修改 进入
3、在 数据科学和分析应用程序 的库 中 勾选Anaconda (最新)和 Python 3 进行安装
1、打开 Anoconda3 的 Anaconda Navigator ,并且以管理员身份打开
2、打开后,点击 Environments - Create ,创建一个环境,然后点击 小三角 - Open Terminal
3、在网址 https://github.com/Unity-Technologies/ml-agents 对应下载对应版本的 ml-agents
(版本为 2019 年 10 月 28 日 的 ml-agents-master 版本)
4、下载好后对应解压得到 ml-agents 工程
5、把刚才 Open Terminal 的窗口,输入 cd /d 对应的 ml-agents-envs 目录,然后 pip install -e . (安装软件环境)
6、然后切换目录 cd /d 对应的 ml-agents 目录,然后 pip install -e . (安装软件环境)
7、以上均没有报错,说明环境配置成功
1、Unity 打开 ml-agent 工程下的 UnitySDK 下的工程
2、然后打开 3DBall Example 场景
3、找到场景中的 Ball3DAcademy ,然后勾选上 脚本 Ball3DAcademy 上的 Control,(为的是后面进行训练)
4、在 Terminal 中 切回 ml-agents 主菜单,执行 mlagents-learn config\trainer_config.yaml --run-id=3dBallTrain001 --train
其中 --run-id=3dBallTrain001 后面的名字自己定义即可
5、执行完以上命令,出现 INFO:mlagents.envs:Start training by pressing the Play button in the Unity Editor. 即可回到
Unity 中,点击 Play 运行场景
6、点击 Unity中的 Play ,运行场景,就开始训练了,训练次数(大概 50000 次之多)会蛮久,等待即可
7、训练结束后,会在特定目录生成训练.nn文件 /3dBallTrain001-0/3DBallLearning.nn
8、由于Unity中有同名的 nn 文件,可以修改名称后导入 Unity中,并且赋值给 3DBallLearning ,具体如下图
9、回到场景,找到场景中的 Ball3DAcademy ,然后取消勾选 脚本 Ball3DAcademy 上的 Control,运行场景,即可看到自己的训练成果
1、在终端Terminal 输入 tensorboard --logdir=summaries
2、在显示的网址中,即可查看,如下图
(注意:挡在终端中按下 Ctrl+C 退出的时候,网页的数据可视化也将中断)
1、报错 W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_100.dll'; dlerror: cudart64_100.dll not found
(正确安装前面的GPU即可解决)