各位好,今天我們要來將昨天寫好的環境註冊到gym中,這個內容其實很多人寫過了,所以如果有看過有了解的話,今天可以直接休息一天跳過沒關係。不過為了這個系列的完整性,我會再介紹一次。
首先我們要先找到我們這個環境存放模組的資料夾,通常尋找的方法也是五花八門,這邊介紹一個相當簡單的逃課方法,我們可以用第12天介紹的pybullet_data.getDataPath()
將這個print出來就可以看到我們模組的位置了。要注意的是site-packages這個資料夾才是放模組的喔。我們在這邊找到gym/envs的資料夾。
C:\Users\ken54\Anaconda3\envs\pythonProject3.8\lib\site-packages\pybullet_data
我們可以看到很多環境類型,這些之前在11天時都介紹過,不過這不是重點,我們要再創一個資料夾用來放我們的環境,新增一個名為r2d2walking的資料夾吧。
接下來把我們的環境的py檔案移動到此資料夾,並新增一個__init__.py檔案,這是函式庫初始化時會先讀取的檔案,我們要在此將我們的環境匯入。檔案內容只要寫出我們自定義環境的類別要如何從gym中匯入就好。
#gym/envs/r2d2walking/__init__.py
from gym.envs.r2d2walking.walking import R2D2Walking
這兩個檔案都放在剛剛建立的資料夾內部就好,接下來就可以正式註冊環境了喔!
我們先回到envs中的資料夾,這邊也有一個__init__.py檔案,註冊會需要更改這個檔案,我們打開檔案,新增以下程式碼就好了。
#gym/envs/__init__.py
register(
id="R2D2walking-v1",
entry_point="gym.envs.r2d2walking:R2D2Walking",
)
id
就是可以自己決定要叫甚麼的,然後後面記得加-v1,這代表版本的號碼,要v0還是v1還是多少都沒差,但要註明此版本號碼就好。
entry_point
是此環境的位置,言下之意是gym.envs.r2d2walking資料夾中有一個名為R2D2Walking的類別(環境)
以上步驟都好了以後就可以使用env=gym.make('R2D2walking-v1')
來確定環境有沒有註冊成功了。
今天註冊好了環境,各位這樣就可以使用自訂義的環境來玩了,基本上openAI gym也有很多環境,網路上更是數不勝數,有興趣都可以再去找找看喔,明天會開始介紹強化學習的套件stable-baselines3,總算要進入最後一個階段啦!