简介
AI人工智能,更准确地说机器学习(machine learning)最近一年非常火热。在最近一段时间,Unity也发布了一个机器学习的工具,叫做ml-agent。
英文介绍如下:
https://blogs.unity3d.com/cn/2017/09/19/introducing-unity-machine-learning-agents/
中文介绍如下:
http://forum.china.unity3d.com/thread-27837-1-1.html
工程在Github上的地址如下
https://github.com/Unity-Technologies/ml-agents
从代码结构上看,ml-agent实现了前端用unity做表现,后端用Phython进行人工智能演算的系统。
搭建环境
主要环境
官方推荐环境如下
Phython2/3 64位
ljupyter notebook
TensorFlow (1.0+) (Training)
Visual Studio 2017
Unity3d 2017
隆ml-agent代码库
从Github网站上克隆(下载)ml-agent,代码,放在任意位置下。
安装Unity2017.2
从Unity官网下载Unity2017.2,安装。
下载地址https://store.unity.com/cn/download?ref=personal
安装VS2017
从微软官网https://www.visualstudio.com/zh-hans/downloads/下载,运行后选择需要的模块。这边虽然有提供python的相关插件,但是我们选择后面单独安装。
安装Anaconda
从Anaconda官网安装Anaconda5.0.0
下载地址https://www.anaconda.com/download/#windows
安装后从开始菜单打开Anaconda Navigator,在左侧选择Environments。在下方菜单中点击Create创建一个环境,取名为tensorflow,python版本选择为3.6。等待环境创建完成。
安装Tensorflow及其依赖库
从开始菜单中,打开Anacoda Prompt。
首先激活刚刚创建的环境,输入命令
activate tensorflow
输入命令安装Tensorflow
pip install –U tensorflow
等待一段时间直到安装完成。至此完成了Tensorflow最新版本的安装。(目前是1.3.0版本)
后面还要输入命令,所以暂时不要关闭窗口
安装ml-agent依赖库
完成Tensorflow安装后,继续在Anacoda Prompt中输入命令切换到ml-agent所在的目录中python目录的位置。比如ml-agent安装目录为D:\Git\ml-agent,则输入
cd D:\Git\ml-agent\python
如果你的Anaconda不是安装在ml-agent目录相同的磁盘,那么需要切换到ml-agen所在的磁盘。比如这里Anaconda的安装目录为C盘,ml-agent安装目录为D:\ml-agent,则需要切换到D盘,输入
D:
然后开始安装Demo所需的环境,输入命令
pip install .
注意,注意不要遗漏最后的点号。等待安装完成即可。此时依然不用关闭这个窗口
运行
编译Unity程序
Unity的ml-agent提供了多干的demo。这里尝试运行3dball这个demo。
使用Unity2017打开ml-agent下unity-environment文件夹。
打开Assets\ML-Agents\Examples\3DBall目录下的scene文件。在场景中选择Ball3DAcademy下的Ball3DBrain物体,将TypeOfBrain修改为External,表示从Tensorflow中获取数据。
菜单中选择File->Build Setting,添加当前所在场景。(可以勾选Development Build以便查看输出)
点击PlayerSeting,检查设置
Resolution and Presentation -> 勾选Run in Background
Resolution and Presentation -> Display Resolution Dialog设置为disable
回到Build Setting面板,点击Build,编译到ml-agent的python目录中。名为3dball.exe
运行Jupyter Notebook
回到Anacoda Prompt命令窗口。注意一定要切换到ml-agent中python所在的目录。输入
jupyter notebook
运行之后,一方面会出现一个命令行窗口,另一方面会同时打开一个网页
点击网页中的PPO.ipynb。修改其中env_name的值为刚刚编译出来的exe名字。注意不要加exe。然后在菜单上选择Cell->RunAll
运行后,可以看到刚刚编译出来的exe被运行起来
总结
注意几个点
虽然很多文章表明tensorflow用python3.5比较好,但是没有深入研究到底有什么影响。
由于Anaconda使用的5.0.0版本,所以默认使用的是python3.6的版本。在这样的情况下,如果创建python3.5的环境,安装tensorflow1.2,会出现运行的时候找不到tensorflow的问题。而如果使用python3.6的环境,但是安装tensorflow1.2,会出现tensorflow. TensorLayer找不到的问题。这些问题花了好多时间排查,需要注意所以最终这里使用的是Anaconda5.0.0,python3.6以及tensorflow1.3
安装依赖库的时候需要注意,一定要切换好环境。否则很可能安装到不同的环境下。这里安装前一定会输入activate tensorflow命令(tensorflow是我创建的环境名)