Related Posts Plugin for WordPress, Blogger...

7-2 Setting Up Unity ML-Agents On Windows

本章要教大家在Windows電腦上使用Unity ML-Agents,以及安裝相關環境的方法。為了使用Unity ML-Agents,我們需要安裝Python、TensorFlow、Jupyter等套件。預先說明,撰寫本文章時的ML-Agents版本為v0.3,當未來有更新版本時,如果有其他變動,我會在撰寫未來的文章時再度提及。

首先,我們需要安裝Anaconda,Anaconda是一種Python語言的免費增值開源發行版,用於進行大規模數據處理,預測分析和科學計算,致力於簡化包的管理和部署。 Anaconda使用軟體包管理系統Conda進行包管理。

下載地址:https://www.anaconda.com/download/


安裝完以後,開啟Anaconda Prompt。

開始安裝環境,我將安裝步驟中需要輸入的指令整理如下,給想跳過太多圖文教學的人參考:

  1. conda create -n ml-agents python=3.6
  2. conda activate ml-agents
  3. pip install tensorflow==1.4.0
  4. cd /d "D:\Unity Project\ml-agents\python"
  5. pip install .
上述五個步驟就可以完成環境的安裝!

好的,那以下開始更詳細的圖文解說。開啟Anaconda Prompt後,輸入指令conda create -n ml-agents python=3.6。

這時會出現一個一個Procced([y]/n)?的提示,請鍵入y後按下Enter。

這時會開始下載並安裝。

安裝完成後,再輸入conda activate ml-agents,然後再輸入pip install tensorflow==1.4.0。注意這邊我安裝的是1.4.0版本的TensorFlow,因為這個版本與ML-Agents v0.3版比較匹配,若往後ML-Agents版本更新,有可能需要使用更新的TensorFlow,請自己注意。

接下來,請到ML-Agents的Git庫下載原始碼,網址為https://github.com/Unity-Technologies/ml-agents

或者也可以使用指令下載:git clone https://github.com/Unity-Technologies/ml-agents.git

下載好以後,找到專案內的python資料夾,如下圖,我放在D:\Unity Project\ml-agents\python。

然後回到Anaconda Prompt,輸入指令cd /d "D:\Unity Project\ml-agents\python"進入該資料夾,然後再輸入指令pip install .。注意,install的後面有一個小點,不要誤會是句號。然後就需要等待他安裝完成,會需要等比較久的時間。

接下來,打開Unity,然後打開ml-agents底下的unity-environment專案,這是官方提供的範例。接著要安裝TensorFlowSharp插件,你可以從以下這兩個官方提供的連結下載插件:
AWS S3連結百度盤連結

Import完TensorFlowSharp插件以後,開啟Build Settings,開啟Player Settings。

這邊有兩個選項,建議勾選Run In Background,這樣在跑訓練的時候,就算做其他的事情,也不會讓訓練停止。然後將Display Resolution Dialog設定為Disabled,才不會每次執行時跳出螢幕解析度的詢問視窗。

然後我們開啟一個最簡單的範例,在Examples/3D Ball/Scenes底下的3DBall。

從場景中找到Ball3DBrain物件。

將Brain Type設定為External,這是要在外部訓練的模式

然後回到PlayerSettings,將Product Name設定為ML-Agent-3DBall,這個名稱請依自己的需求進行變更。

然後Build專案。

找到放置專案的資料夾。

回到Anaconda Prompt,輸入指令jupyter notebook "D:\Unity Project\ml-agents\python\Basics.ipynb",這是要用來設定一些參數的。

這時應該會自動啟動瀏覽器,然後跳出下列畫面。請修改env_name內的值,將其和你輸出的應用程式名稱對應,此範例為ML-Agent-3DBall。

接著輸入指令python learn.py "D:\Unity Project\ml-agents\unity-environment\ML-Agent\3DBall\ML-Agent-3DBall.exe" --train。

learn.py是ML-Agent的Python資料夾內提供的腳本,後面接Unity應用程式的路徑,以及告知訓練的參數--train。

這時就會自動啟動我們剛剛輸出的應用程式,開始進行訓練了。

訓練完以後,視窗會出現Saved Mobel,以及Restoring parameters from ./models/ppo\model-50001.cptk,這邊告訴你輸出後的模型放在哪裡。

所以我們來到該資料夾,我們需要的檔案是ML-Agent-3DBall_ppo.bytes,如下圖。

你可以輸入tensorboard --logdir=summaries,開啟TensorBoard觀察此次訓練過程的圖表。命令列中有告知請開啟http://PC1880:6006。

開啟網址後,會出現如下視窗,每個圖表所代表的定義,暫不在本篇文章的教學範疇中,但後面更進階的文章會再向大家介紹。

將剛剛的ML-Agent-3DBall_ppo.bytes檔案,複製到Unity專案內。

回到Unity的Player Settings,Scripting Runtime Version請選擇.NET 4.x Equivalent。注意這邊,只有Unity 2017或更高版本才提供.NET 4.x以上的環境。然後,在Scripting Define Symbols中輸入ENABLE_TENSORFLOW。

接著,回到Ball3DBrain物件,將Brain Type設置為Internal,該模式使用已經訓練好的模型執行大腦,所以,我們要將剛剛訓練好的bytes檔案拉進Graph Model參數。

好的,接著執行遊戲,就會發現3D Ball訓練小球可以成功平衡啦!!本章主要介紹環境安裝,以後再談原理與更多應用吧。

留言