注意
ml-agent已經升級到v0.3,安裝請參考ml-agent v0.3 win10安裝和實踐
簡介
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位
- jupyter 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是我創建的環境名)