Gym 釋出說明¶
0.26.2¶
釋出於 2022-10-04 - GitHub - PyPI
釋出說明
這是又一個非常小的錯誤修復版本。
錯誤修復
- 由於 `reset` 現在返回 `(obs, info)`,在向量環境中,這導致最終 `step` 的 info 被覆蓋。現在,最終的觀測和 info 作為 "final_observation" 和 "final_info" 包含在 info 中。@pseudo-rnd-thoughts
- 在嘗試渲染時未指定 `render_mode` 會新增警告。@younik
- 更新 Atari 預處理,使封裝器可以被序列化。@vermouth1992
- Github CI 已強化,使 CI 只有讀取許可權。@sashashura
- 澄清並修復 `GraphInstance` 中的拼寫錯誤。@ekalosak
0.26.1¶
釋出於 2022-09-16 - GitHub - PyPI
釋出說明
這是 0.26.0 的一個非常小的錯誤修復版本。
錯誤修復
- #3072 - 之前,即使只使用了 `mujoco-py`,`mujoco` 仍然是一個必需的模組。這已得到修復,現在只允許安裝和使用 `mujoco-py`。@YouJiacheng
- #3076 - 如果未指定 `env.render_mode`,`PixelObservationWrapper` 會引發異常。@vmoens
- #3080 - 修復了 `CarRacing` 中車輪顏色不正確的錯誤。@foxik
- #3083 - 修復了 BipedalWalker 中如果智慧體向後移動,渲染陣列大小會不同的錯誤。@younik
拼寫
0.26.0¶
釋出於 2022-09-06 - GitHub - PyPI
v0.26.0 釋出說明
此版本旨在成為核心 API 主要更改的最後一版。所有先前“關閉”的基礎 API 更改(step 的終止/截斷、reset 的 info、無 seed 函式、渲染模式由初始化決定)現在都將預設啟用。我們仍然計劃對 Gym 本身進行破壞性更改,但僅限於非常易於升級的部分(環境和封裝器),以及不經常使用的部分(向量 API)。一旦這些方面穩定下來,我們將釋出正式的 1.0 版本並遵循語義版本控制。此外,除非此版本出現嚴重問題導致我們必須釋出補丁版本,否則這將是 Gym 在一段時間內的最後一次釋出。
如果您一直在等待 Gym 的“穩定”版本來升級您的專案,考慮到所有正在進行的更改,這就是您所等待的版本。
我們還想說,我們非常感謝社群對我們的耐心,因為我們在這段接管 Gym 維護並對核心 API 進行所有這些重大更改的旅程中。我們感謝您的耐心和支援,但希望從現在開始,所有更改都將是更小的。
破壞性向後不相容
這些更改適用於所有 **gym** 的內部封裝器和環境,但對於未更新的環境,我們提供了 `EnvCompatibility ` 封裝器,供使用者將舊版 gym v21 / 22 環境轉換為新的核心 API。此封裝器可以透過 `apply_api_compatibility ` 引數輕鬆應用於 `gym.make` 和 `gym.register`。
- `Step` 終止/截斷 - `Env.step` 函式現在返回 5 個值,而不是之前的 4 個值(`observations, reward, termination, truncation, info`)。更多細節的部落格文章將很快釋出,以解釋此決定。@arjun-kg
- Reset info - `Env.reset` 函式返回兩個值(`obs` 和 `info`),對於 gym 封裝器和環境,沒有 `return_info` 引數。這對於一些為每個動作提供動作掩碼資訊的環境很重要,這在 reset 中是不可能實現的。@balisujohn
- 無 `Seed` 函式 - 儘管 `Env.seed` 是一個有用的函式,但它幾乎只用於劇集的開始,並已新增到 `gym.reset(seed=...)` 中。此外,對於像 Atari 這樣利用外部隨機數生成器的多個環境,除了 `reset` 之外,無法在任何時候設定種子。因此,`seed` 不再期望在 gym 環境中發揮作用,並已從所有 gym 環境中移除。@balisujohn
- 渲染 - 通常只使用單一渲染模式,為了幫助開啟和關閉渲染視窗,我們已將 `Env.render` 更改為不接受任何引數,因此所有渲染引數都可以作為環境建構函式的一部分,例如 `gym.make("CartPole-v1", render_mode="human")`。有關新 API 的更多詳細資訊,請參閱部落格文章。@younik
主要更改
- 渲染模式 - 在 `v25` 中,渲染模式的含義發生了變化,即“rgb_array”返回渲染幀列表,“single_rgb_array”返回單個幀。此版本已**恢復**此更改,“rgb_array”的含義與之前相同,即返回單個幀,並新增了“rgb_array_list”模式,返回 RGB 陣列列表。透過在 `gym.make` 期間應用的封裝器實現返回渲染觀測列表的功能。#3040 @pseudo-rnd-thoughts @younik
- 添加了使用 `moviepy` 渲染 RGB 幀列表的 `save_video`,並更新 `RecordVideo` 以使用此函式。這移除了對錄製 `ansi` 輸出的支援。#3016 @younik
- `RandomNumberGenerator` 函式:`rand`、`randn`、`randint`、`get_state`、`set_state`、`hash_seed`、`create_seed`、`_bigint_from_bytes` 和 `_int_list_from_bigint` 已被移除。@balisujohn
- 將 `ale-py` 版本提升至 `0.8.0`,與新的核心 API 相容。
- 添加了 `EnvAPICompatibility` 封裝器。@RedTachyon
次要更改
- 改進了 `Sequence`、`Graph` 和 `Text` 樣本掩碼。@pseudo-rnd-thoughts
- 改進了 gym `make` 和 `register` 的型別提示,其中 `entry_point` 是 `register` 的必需引數。#3041 @pseudo-rnd-thoughts
- 將所有 URL 更改為新的 gym 網站 https://www.gymlibrary.dev/。@FieteO
- 修復了 mujoco 離屏渲染中權重和高度值大於 500 的問題。#3044 @YouJiacheng
- 允許 toy_text 環境在無頭機器上渲染。#3037 @RedTachyon
- 重新命名了 mujoco 游泳者環境中的電機。#3036 @lin826
0.25.2¶
釋出於 2022-08-18 - GitHub - PyPI
v0.25.2 釋出說明
這是一個相當小的錯誤修復版本。
錯誤修復
- 移除了 step 相容性函式中 info 內對 `_TimeLimit.truncated` 的要求。這使得 step 與 Envpool 相容。@arjun-kg
- 由於 `Dict` 空間在扁平化時順序很重要,更新了 `__eq__` 以考慮 `.keys()` 的順序。@XuehaiPan
- 允許 `CarRacing` 環境被序列化。更新了所有 gym 環境以正確序列化。@RedTachyon
- 使用整數對 `Dict` 和 `Tuple` 空間進行種子設定可能導致低配置計算機因需要 8Gb 記憶體而掛起。更新了使用整數進行種子設定的方式,使其不需要唯一的子種子(子種子衝突很少見)。對於所有子空間都需要唯一子種子的使用者,我們建議使用包含子種子的字典或元組。@olipinski
- 修復了新渲染 API 的元類實現,以允許自定義環境也使用元類。@YouJiacheng
更新
- 簡化了步進相容性函式,使其更易於除錯。使用舊的步進 API 的時間限制封裝器在 `terminated` 和 `truncated` 都為真時優先選擇 `terminated`。這是因為舊的 `done` 步進 API 只能編碼 3 種狀態(無法編碼 `terminated=True` 和 `truncated=True`),因此我們必須僅編碼為 `terminated=True` 或 `truncated=True`。@pseudo-rnd-thoughts
- 新增 Swig 作為依賴項。@kir0ul
- 為 `render_mode` 和 `metadata` 新增型別註解。@bkrl
0.25.1¶
釋出於 2022-07-26 - GitHub - PyPI
釋出說明
- 為 CliffWalking 環境添加了渲染。@younik
- 由於難以同時支援舊 API 和新 API,`PixelObservationWrapper` 僅支援新的渲染 API。如果使用者使用舊 API,則會發出警告。@vmoens
錯誤修復
- 還原 wrapper.FrameStack 上的錯誤修改。@ZhiqingXiao
- 修復山地車環境的重置邊界。@psc-g
- 移除了被跳過的測試,這些測試導致錯誤未能被捕獲。@pseudo-rnd-thoughts
- 為沒有元資料的環境添加了向後相容性。@pseudo-rnd-thoughts
- 修復了 `BipedalWalker` 對 RGB 陣列的渲染問題。@1b15
- 修復了 `PixelObsWrapper` 在使用新渲染時的錯誤。@younik
拼寫錯誤
- 重新闡述了 Lunar Lander 環境中觀測的定義。@EvanMath
- `gym/spaces/dict.py` 中的頂部文件字串。@Ice1187
- `humanoidstandup_v4.py`、`mujoco_env.py` 和 `vector_list_info.py` 中有幾處拼寫錯誤。@timgates42
- 被動環境檢查器中的拼寫錯誤。@pseudo-rnd-thoughts
- Swimmer 旋轉中的拼寫錯誤。@lin826
0.25.0¶
釋出於 2022-07-13 - GitHub - PyPI
釋出說明
此版本最終引入了過去一年多以來計劃的所有新 API 更改,這些更改將在後續版本中預設啟用。此後,Gym 的開發應該會大幅度順暢。此版本還修復了 0.24.0 和 0.24.1 中存在的重大錯誤,我們強烈不建議使用這些版本。
API 更改
- `Step` - 大多數深度強化學習演算法的實現都是不正確的,因為理論和實踐之間存在一個重要區別,即 `done` 不等同於 `termination`。因此,我們修改了 `step` 函式,使其返回五個值:`obs, reward, termination, truncation, info`。這些更改的完整理論和實踐原因(以及示例程式碼更改)將在即將釋出的部落格文章中解釋。此更改的目標是向後相容(目前),如果遇到問題,請在 GitHub 或 Discord 上報告。@arjun-kg
- `Render` - 渲染 API 已更改,模式必須在 `gym.make` 期間使用關鍵字 `render_mode` 指定,此後渲染模式將固定。有關更多詳細資訊,請參閱 https://younis.dev/blog/2022/render-api/ 和 #2671。這帶來了額外的更改:
- 使用 `render_mode="human"` 時,您無需呼叫 `.render()`,渲染將在 `env.step()` 時自動發生。
- 使用 `render_mode="rgb_array"` 時,`.render()` 會彈出自上次 `.reset()` 以來渲染的幀列表。
- 使用 `render_mode="single_rgb_array"` 時,`.render()` 返回單個幀,與之前相同。
- `Space.sample(mask=...)` 允許在取樣動作時使用掩碼,以啟用/停用某些動作的隨機取樣。我們建議開發者將其新增到 `reset(return_info=True)` 和 `step` 返回的 `info` 引數中。有關掩碼或各個空間的示例實現,請參閱 #2906。我們已在出租車環境中添加了此功能的示例版本。@pseudo-rnd-thoughts
- 為使用圖樣式觀測或動作空間的環境添加了 `Graph`。目前,節點和邊空間只能是 `Box` 或 `Discrete` 空間。@jjshoots
- 為強化學習添加了 `Text` 空間,用於智慧體之間的通訊和動態長度訊息(否則可以使用 `MultiDiscrete`)。@ryanrudes @pseudo-rnd-thoughts
錯誤修復
- 修復了賽車終止問題,即如果智慧體完成最後一圈,環境會透過截斷而不是終止結束。這導致賽車版本提升到 v2,並移除了離散賽車,轉而支援 `gym.make("CarRacing-v2", continuous=False)`。@araffin
- 在 `v0.24.0` 中,`opencv-python` 是專案的一個意外要求。這已還原。@KexianShen @pseudo-rnd-thoughts
- 更新了 `utils.play`,使其在環境指定 `keys_to_action` 時自動使用該資料。@Markus28
- 在渲染21點環境時,修復了渲染會改變莊家頂部紙牌的錯誤。@balisujohn
- 更新了 mujoco 文件字串,以反映被意外覆蓋的更改。@Markus28
其他
- 整個專案部分使用了 pyright 進行型別提示(沒有專案檔案被型別提示器忽略)。@RedTachyon @pseudo-rnd-thoughts (未來工作將為核心 API 新增嚴格型別提示)
- 計程車環境添加了動作掩碼(由於向後相容,未提升版本)。@pseudo-rnd-thoughts
- `Box` 空間形狀推斷允許 `high` 和 `low` 標量自動設定為 `(1,)` 形狀。對識別標量進行了少量更改。@pseudo-rnd-thoughts
- 在經典控制環境中添加了選項支援,以修改環境初始隨機狀態的邊界。@psc-g
- `RecordVideo` 封裝器正在被棄用,不支援新渲染 API 的 `TextEncoder`。計劃是用一個函式替換 `RecordVideo`,該函式將從環境中接收幀列表,並使用 `MoviePy` 自動將它們渲染為影片。@johnMinelli
- gym `py.Dockerfile` 透過多項最佳化從 2Gb 最佳化到 1.5Gb。@TheDen
0.24.1¶
釋出於 2022-06-07 - GitHub - PyPI
這是 0.24.0 版本的一個錯誤修復版本。
已修復錯誤
- 替換了 V24 中引入的環境檢查器,使得環境檢查器在建立(make)過程中不會呼叫 `step` 和 `reset`。新版本是一個封裝器,它將在 `step` 和 `reset` 首次呼叫時觀察它們返回的資料,並根據環境檢查器進行檢查。@pseudo-rnd-thoughts
- 修復了 MuJoCo v4 引數鍵回撥、渲染器中環境關閉以及 mujoco_rendering 關閉方法的問題。@rodrigodelazcano
- 移除了註冊中冗餘的警告。@RedTachyon
- 從 MuJoCo xml 檔案中移除了數學運算。@quagla
- 添加了對反序列化舊版 `spaces.Box` 的支援。@pseudo-rnd-thoughts
- 修復了 mujoco 環境動作和觀測空間文件字串表格。@pseudo-rnd-thoughts
- 停用封裝器訪問 `_np_random` 屬性,並且 `np_random` 現在被轉發到環境。@pseudo-rnd-thoughts
- 重寫 setup.py 以新增一個“testing”元依賴組。@pseudo-rnd-thoughts
- 修復了 `rescale_action` 封裝器中的文件字串。@gianlucadecola
0.24.0¶
釋出於 2022-05-25 - GitHub - PyPI
主要更改
- 添加了使用新的 deepmind mujoco 2.2.0 模組的 v4 mujoco 環境。
這可以透過 `pip install gym[mujoco]` 安裝,舊的繫結仍然可以
透過 `v3` 環境和 `pip install gym[mujoco-py]` 使用。
這些新的 `v4` 環境應該與 `v3` 具有相同的訓練曲線。對於 Ant,我們發現有一個
在 `v3` 中未應用的接觸引數可以在 `v4` 中啟用,但發現其效能顯著
更差,詳見評論。@rodrigodelazcano - 向量環境的 `step` 的 `info` API 已更改,以便未來支援硬體加速。
請參閱此 PR,瞭解修改後的 `info` 樣式,該樣式現在使用字典而不是環境資訊列表。
如果您仍然希望使用列表 info 樣式,請使用 `VectorListInfo` 封裝器。@gianlucadecola - 在 `gym.make` 時,會執行 gym `env_checker`,其中包括呼叫環境的 `reset` 和 `step` 以檢查環境是否
符合 gym API。要停用此功能,請執行 `gym.make(..., disable_env_checker=True)`。@RedTachyon - 重新添加了在 v0.22 中意外移除的 `gym.make("MODULE:ENV")` 匯入樣式。@arjun-kg
- `Env.render` 現在強制執行順序,要求在呼叫 `Env.render` 之前必須呼叫 `Env.reset`。如果這是必需的
功能,則將 `OrderEnforcer` 封裝器的 `disable_render_order_enforcing` 設定為 `True`。@pseudo-rnd-thoughts - 為月球著陸器環境添加了風和湍流,這在預設情況下是關閉的,
請使用 `wind_power` 和 `turbulence` 引數。@virgilt - 改進了 `play` 函式,允許傳遞多個鍵盤字母而不是 ASCII 值。@Markus28
- 為大多數倉庫添加了 Google 風格的 pydoc 字串。@pseudo-rnd-thoughts @Markus28
- 透過 `gym.make("CarRacing-v1", continuous=False)` 添加了離散賽車環境版本。
- Pygame 現在是 box2d 和經典控制環境的可選模組,僅在渲染時才需要。
因此,請使用 `pip install gym[box2d]` 或 `pip install gym[classic_control]` 安裝 pygame。@gianlucadecola @RedTachyon - 修復了批處理空間(用於 VectorEnv)中的錯誤,該錯誤導致忽略了原始空間的種子。@pseudo-rnd-thoughts
- 添加了 `AutoResetWrapper`,當 `Env.step` 完成為 True 時,它會自動呼叫 `Env.reset`。@balisujohn
次要更改
- BipedalWalker 和 LunarLander 的觀測空間具有非無限的上限和下限。@jjshoots
- 將 ALE-py 版本提升至 `0.7.5`。
- 透過不渲染螢幕外的多邊形,提高了賽車遊戲的效能。@andrewtanJS
- 修復了賽車中轉向指示器為黑色而非紅/白色的問題。@jjshoots
- 修復了 `VecEnvWrapper` 中的錯誤,使其將方法呼叫轉發到環境。@arjun-kg
- 移除了 Box2d 上不必要的 try except,這樣如果 `Box2d` 未正確安裝,則會顯示更有幫助的錯誤。@pseudo-rnd-thoughts
- 簡化了 `gym.registry` 後端。@RedTachyon
- 透過回溯 Python 3.7+ 模組重新添加了 Python 3.6 支援。這未經過測試,也與 mujoco 環境不相容。@pseudo-rnd-thoughts
0.23.1¶
釋出於 2022-03-11 - GitHub - PyPI
此版本包含一些小的錯誤修復,並且沒有破壞性更改。
- 使 `VideoRecorder` 向後相容 `gym<0.23`,由 @vwxyzjn 在 #2678 中實現。
- 修復了 pygame 事件處理問題(這應該能修復 Windows 和 Jupyter Notebook 中的支援),由 @andrewtanJS 在 #2684 中實現。
- 由 @micimize 在 https://github.com/openai/gym/p 中將 py.typed 新增到 package_data。
- 修復了 CI 中大約 1500 個警告。@pseudo-rnd-thoughts
- 現在正確顯示棄用警告。@vwxyzjn
- 修復了移除 striker 和 thrower 的問題。@RushivArora
- 修復了小的依賴警告錯誤。@ZhiqingXiao
0.23.0¶
釋出於 2022-03-04 - GitHub - PyPI
此版本包含許多錯誤修復和少量更改。
破壞性更改
- 在渲染破壞性更改之前標準化了渲染元資料變數。@trigaten
- 移除了已棄用的 monitor 封裝器和相關的廢棄程式碼。@gianlucadecola
- 未使用的 striker 和 thrower MuJoCo 環境已移至 https://github.com/RushivArora/Gym-Mujoco-Archive。@RushivArora
許多小的錯誤修復(@vwxyzjn , @RedTachyon , @rusu24edward , @Markus28 , @dsctt , @andrewtanJS , @tristandeleu , @duburcqa)
0.22.0¶
釋出於 2022-02-17 - GitHub - PyPI
v0.22 釋出說明
此版本代表了 Gym 迄今為止最大規模的一組更改,並朝著此處概述的 1.0 計劃邁出了巨大一步:#2524
Gym 現在擁有了一個全新的綜合文件網站:https://www.gymlibrary.ml/ !
API 更改
-
`Env.reset` 現在接受三個新引數
-
`options`:可用於控制課程學習等,而無需重新初始化環境,這可能開銷很大(@RedTachyon)
-
`seed`:將來可以將環境種子傳遞給此重置引數。舊的 `.seed()` 方法正在被棄用,轉而使用此方法,但為了向後相容,在 1.0 版本釋出之前它將繼續像以前一樣執行(@RedTachyon)
-
`return_info`:當設定為 `True` 時,重置將返回 obs 和 info。這目前預設為 `False`,但在 Gym 1.0 中將成為預設行為(@RedTachyon)
-
環境名稱在註冊時不再需要版本號,並且會建議智慧的相似名稱(@kir0ul, @JesseFarebro)
-
向量環境現在支援 `info` 中的 `terminal_observation` 並支援批處理動作空間(@vwxyzjn, @tristandeleu)
環境更改
- 21點和冰湖 toy_text 環境現在使用 PyGame 進行了漂亮的圖形渲染(@1b15)
- 將機器人環境移至 gym-robotics 包(@seungjaeryanlee, @Rohan138, @vwxyzjn)(根據 #2456 中的討論 (comment))
- 雙足步行器和月球著陸器環境已合併為一個類(@andrewtanJS)
- Atari 環境現在使用標準種子 API(@JesseFarebro)
- 修復了 car_racing box2d 環境中的重大錯誤,並提升了版本(@carlosluis, @araffin)
- 重構了所有 box2d 和 classic_control 環境,使其使用 PyGame 而不是 Pyglet,因為 Pyglet 的問題一直是 Gym 專案生命週期中最常見的 GitHub 問題來源之一(@andrewtanJS)
其他更改
- 移除了 DiscreteEnv 類,內建環境不再使用它(@carlosluis)
- 添加了大量的型別提示(@ikamensh, @RedTachyon)
- 支援 Python 3.10
- 大量的額外程式碼重構、清理、錯誤訊息改進和小型錯誤修復(@vwxyzjn, @Markus28, @RushivArora, @jjshoots, @XuehaiPan, @Rohan138, @JesseFarebro, @Ericonaldo, @AdilZouitine, @RedTachyon)
- 所有環境檔案頂部現在都有了大幅改進的自述檔案(文件網站會自動從中提取)
- 作為種子更改的一部分,Gym 的 RNG 已修改為使用 `np.random.Generator`,因為 RandomState API 已被棄用。`randint`、`rand`、`randn` 方法分別被 `integers`、`random` 和 `standard_normal` 替代。因此,隨機數生成器已從 `MT19937` 更改為 `PCG64`。
**完整更新日誌**:v0.21.0...0.22.0
v0.21.0¶
釋出於 2021-10-02 - GitHub - PyPI
v0.21.0 釋出說明
- 修復了上次釋出和升級到 ALE-Py 導致損壞的舊 Atari 入口點(@JesseFarebro)
- Atari 環境現在提供了更清晰的錯誤訊息和警告(@JesseFarebro)
- 添加了一個新的外掛系統,以便更容易地包含第三方環境(@JesseFarebro)
- Atari 環境現在使用新的外掛系統,以防止名稱衝突和其他問題(@JesseFarebro)
- `pip install gym[atari]` 不再分發 ALE(所使用的 Atari 模擬器)執行各種遊戲所需的 Atari ROM。將 ROM 安裝到 ALE 最簡單的方法一直是使用 AutoROM。Gym 現在有一個連線 AutoROM 的鉤子,以便更輕鬆地進行 CI 自動化,透過使用 `pip install gym[accept-rom-license]` 呼叫 AutoROM 將 ROM 新增到 ALE。您可以使用簡寫 `gym[atari, accept-rom-license]` 安裝整個套件。請注意,如名稱所述,安裝 `gym[accept-rom-license]` 即表示您確認擁有安裝 ROM 的相關許可。(@JesseFarebro)
- 修復了在使用舊版 Gym 訓練的、使用 box 動作空間的環境載入已儲存策略時意外發生的破壞性更改。(@RedTachyon)
- 擺(Pendulum)的物理邏輯已進行小幅修復,版本已提升至 v1(@RedTachyon)
- 測試已重構,變得更有序(@RedTachyon)
- Dict 空間現在擁有標準的字典輔助方法(@Rohan138)
- 環境屬性現在會轉發到封裝器(@tristandeleu)
- Gym 現在正確強制要求在首次步進之前呼叫 reset(@ahmedo42)
- 錯誤訊息正確地管道輸出到 stderr(@XuehaiPan)
- 修復影片儲存問題(@zlig)
此外,Gym 正在編制一份第三方環境列表,以納入我們正在開發的新文件網站。請提交缺失環境的 PR:https://github.com/openai/gym/blob/master/docs/third_party_environments.md
**完整更新日誌**:v0.20.0...v0.21.0
v0.20.0¶
釋出於 2021-09-14 - GitHub - PyPI
v0.20.0 釋出說明
主要更改
- 將 Atari-Py 依賴項替換為 ALE-Py 並提升了所有版本。這是一次包含許多更改的大規模升級,請參閱完整直譯器(@JesseFarebro)
- 請注意,ALE-Py 不包含 ROM。不過,您可以使用 `AutoROM` 透過兩行 bash 命令安裝 ROM(`pip3 install autorom` 然後 `autorom`),請參閱 https://github.com/PettingZoo-Team/AutoROM。這是 CI 等推薦的方法。
破壞性更改和新功能
- 新增 `RecordVideo` 封裝器,棄用 `monitor` 封裝器,轉而使用 `RecordVideo` 和 `RecordEpisodeStatistics` 封裝器(@vwxyzjn)
- 環境外部使用的依賴項(例如封裝器)現在位於 `gym[other]` 中(@jkterry1)
- 將演算法和未使用的 toy-text 環境(猜謎遊戲、溫度計、nchain、輪盤賭、kellycoinflip)移至第三方倉庫(@jkterry1, @Rohan138)
- 修復了 MultiDiscrete 空間中的扁平化工具和 flatdim(@tristandeleu)
- 向 dict 空間新增 `__setitem__`(@jfpettit)
- 對 box 空間 `.contains` 方法的大量修復(@FirefoxMetzger)
- 使21點環境正確符合 Barto 和 Sutton 書籍標準,版本提升至 v1(@RedTachyon)
- 添加了 `NormalizeObservation` 和 `NormalizeReward` 封裝器(@vwxyzjn)
- 向 MultiDiscrete 空間新增 `__getitem__` 和 `__len__`(@XuehaiPan)
- 將 `.shape` 更改為 box 空間的屬性,以防止意外行為(@RedTachyon)
錯誤修復和升級
- 錄影機優雅地處理關閉(@XuehaiPan)
- setup.py 中剩餘的不必要依賴項已解決(@jkterry1)
- Acrobot 效能小幅提升(@TuckerBMorgan)
- 當施加 0 力時,擺(Pendulum)能正確渲染(@Olimoyo)
- 使所有經典控制環境和雙足步行器中觀測的資料型別與觀測空間資料型別保持一致(@RedTachyon)
- 移除了註冊中未使用和長期棄用的功能(@Rohan138)
- Framestack 封裝器現在繼承自 obswrapper(@jfpettit)
- `spaces.Tuple` 和 `spaces.Dict` 的種子方法現在功能正常,完全隨機,功能齊全,並按預期行為(@XuehaiPan, @RaghuSpaceRajan)
- 將 `time()` 替換為 `perf_counter()`,以更好地測量短時間持續(@zuoxingdong)
**完整更新日誌**:0.19.0...v0.20.0
0.19.0¶
釋出於 2021-08-13 - GitHub - PyPI
Gym 0.19.0 是一個大型維護版本,也是自 @jkterry1 成為維護者以來的第一個版本。此版本應該沒有破壞性更改。
新功能
- 向 multidiscrete 空間添加了自定義資料型別引數(@m-orsini)
- 根據 SB3 和 PettingZoo 測試添加了 API 合規性測試(@amtamasi)
- RecordEpisodeStatics 與 VectorEnv 相容(@vwxyzjn)
錯誤修復
- 移除了未使用的依賴項,移除了導致在新機器上安裝問題的非必要依賴項版本要求,添加了完整的 requirements.txt 並將通用依賴項移至 extras。值得注意的是,“toy_text”不是一個使用的 extra。atari-py 現在被固定到一個精確的工作版本,等待切換到 ale-py(@jkterry1)
- 修復了 FrozenLake 和 FrozenLake8x8 中獎勵的錯誤;版本提升至 v1(@ZhiqingXiao)
-移除了剩餘的 numpy 棄用警告(@super-pirata) - 修復了影片錄製問題(@mahiuchun, @zlig)
- EZ pickle 引數修復(@zzyunzhi, @Indoril007)
- 其他非常小的(非破壞性)修復
其他
0.12.5¶
v0.9.6¶
釋出於 2018-02-01 - GitHub - PyPI
- 現在您的 `Env` 和 `Wrapper` 子類應該定義 `step`、`reset`、`render`、`close`、`seed`,而不是以下劃線開頭的私有方法名。
- 移除了 `board_game`、`debugging`、`safety`、`parameter_tuning` 環境,因為 OpenAI 不再維護它們。我們鼓勵作者和使用者為這些環境建立新的倉庫。
- 將 `MultiDiscrete` 動作空間範圍從 `[a, ..., b-1]` 更改為 `[0, ..., n-1]`。
- 不再使用 `render(close=True)`,請使用環境特定的方法關閉渲染。
- 移除了 `scoreboard` 目錄,因為該網站已不存在。
- 將 `gym/monitoring` 移動到 `gym/wrappers/monitoring`
- 向 `Space` 新增 `dtype`。
- 不再使用 Python 的內建模組,轉而使用 `gym.logger`。