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。
開始安裝環境,我將安裝步驟中需要輸入的指令整理如下,給想跳過太多圖文教學的人參考:
這時會出現一個一個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連結,百度盤連結
這邊有兩個選項,建議勾選Run In Background,這樣在跑訓練的時候,就算做其他的事情,也不會讓訓練停止。然後將Display Resolution Dialog設定為Disabled,才不會每次執行時跳出螢幕解析度的詢問視窗。
然後我們開啟一個最簡單的範例,在Examples/3D Ball/Scenes底下的3DBall。
從場景中找到Ball3DBrain物件。
然後回到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訓練小球可以成功平衡啦!!本章主要介紹環境安裝,以後再談原理與更多應用吧。
首先,我們需要安裝Anaconda,Anaconda是一種Python語言的免費增值開源發行版,用於進行大規模數據處理,預測分析和科學計算,致力於簡化包的管理和部署。 Anaconda使用軟體包管理系統Conda進行包管理。
下載地址:https://www.anaconda.com/download/
安裝完以後,開啟Anaconda Prompt。
開始安裝環境,我將安裝步驟中需要輸入的指令整理如下,給想跳過太多圖文教學的人參考:
- conda create -n ml-agents python=3.6
- conda activate ml-agents
- pip install tensorflow==1.4.0
- cd /d "D:\Unity Project\ml-agents\python"
- 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訓練小球可以成功平衡啦!!本章主要介紹環境安裝,以後再談原理與更多應用吧。
留言
張貼留言