1. 程式人生 > >Unity ML-agents 一、初次嘗試

Unity ML-agents 一、初次嘗試

前言

曾在高二寒假的時候,跟表哥在外面玩,當時他問我有沒有想過以後要做什麼,我愣了一下,回答不上來。是的,從沒想過以後要做什麼,只是一直在完成學校、老師安排的任務,於是那之後半年,我一直在思考,大學要學什麼。在大二下期中之後,我覺得自己還是對遊戲更感興趣,便想到以後想做遊戲。於是,高考後填志願,填的都是計算機專業。在大一的時候,自學了一段時間的 Unity,到大二在實驗室接觸強化學習之後,就想著用 RL 來做遊戲 AI,但後來一直在做資料探勘相關的內容,基本上以參加比賽為主。直到去年參加上海的谷歌開發者節,瞭解到 ML-agents 之後,就十分的想嘗試。

然後由於疫情,直到現在還在家裡鹹魚,前段時間一邊鹹魚一邊投簡歷,奈何自己水平太低又偏偏想投演算法崗,直到現在也沒有幾次面試機會 orz。最近就想繼續當年未完成的 Unity 的學習,順便學習 ML-agents,回到原點,重新出發。

初試 ML-agents

環境配置

既然要嘗試,肯定免不了環境配置
目前我的環境為:

  1. Win10
  2. Tensorflow 2.0
  3. ML-agents 0.15.0
  4. Unity 2019.3.1f1
    關於 Tensorflow 2.0 的安裝,參考我之前的部落格,Unity 的安裝,推薦先下載 Unity Hub,通過 Unity Hub 可以管理不同版本的 Unity,下載戳這裡

ML-agents 的安裝有兩種方式
一是直接 pip

pip install mlagents

二是從官方 github 中 clone 整個專案,然後 cd 到目錄中

pip install -e ./ml-agents-envs
pip install -e ./ml-agents

到這裡,環境配置就算完成了

跑個 Demo 先吧

在 Unity Hub 中匯入剛剛從 github 上 clone 的專案

選擇 Unity 版本之後開啟

然後開啟 3DBall 這個場景

點選執行的話可以直接看到效果

接著,開始嘗試自己訓練,開啟命令列,進入到之前 clone 下來的專案目錄中,並在目錄中建立一個名為 summaries 的資料夾

然後輸入

mlagents-learn config/trainer_config.yaml --run-id=test --train

在出現圖示之後,切換到 Unity 執行專案,就可以看見開始訓練了

可以看出來一開的效果是很差的,完全控制不好,這次訓練大概訓練 40w+ 步,到後面就很穩了

注:專案目錄中儘量不要出現中文,下午在嘗試的時候一直報錯,後來更改目錄之後發現成功了,不清楚是不是路徑中有中文的原因
報錯內容

 "The Unity environment took too long to respond. Make sure that :\n"
mlagents_envs.exception.UnityTimeOutException: The Unity environment took too long to respond. Make sure that :
         The environment does not need user interaction to launch
         The Agents are linked to the appropriate Brains
         The environment and the Python interface have compatible versions.

訓練完成後,我們可以在 models 目錄下看到剛剛訓練好的模型,重新命名一下,然後把模型拖到 TFModel 目錄中

接著開啟 prefabs 中的 3DBall,點選其中的 agent,然後將 Behavior 改成我們剛剛拖到 TFModel 目錄中的模型

點選執行,發現控制的十分穩定,跟一開始差不多。至此,初試完畢。

小節

這裡我們安裝配置了 ML-agnets 的相關環境,並運行了個 Demo 來熟悉了遍流程,後面將開始嘗試自己搭建環境,訓練 AI,也不知道能不能搗鼓出來,23333