OpenAI Gym 在windows下的配置和使用

目前,OpenAI Gym(以下簡稱gym)作為一個在強化學習領域內非常流行的測試框架,已然成為了Benchmark。然而讓人遺憾的是,這個框架到目前為止(2018年2月15日)2年了,沒有要支持windows系統的意思---看來是不能指望官方會支持了~

筆者希望藉此文章給出一個方案。給希望能在windows下基於gym(尤其是atari game)來研究強化學習的同胞們一條生路。

安裝

這裡以剛裝完原版官方win10x64的Python 2.7.1x64|Anaconda 4.4.0為例。由於之後需要修改python文件,建議裝上pycharm。同時為了更好的CMD體驗,建議裝上cmder。

先安裝官方gym,cmd中輸入:

pip install gym -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

pip install gym會執行gym的最小化安裝。

gym最小化安裝成功

裝好後就已經可以執行Algorithmic和Toy text模塊了。這裡附上我在jupyter notebook里的測試代碼,可以測試下:

import gymtest_envs={algorithm:Copy-v0, toy_text:FrozenLake-v0, control:CartPole-v0, # option:MountainCar-v0 atari:SpaceInvaders-v0,# options:Breakout-ram-v4,Seaquest-v0, mujoco:Humanoid-v1, # not feasible on Win10 box2d:LunarLander-v2 } # not feasible on Win10game_name = test_envs[algorithm]env = gym.make(game_name)for i_episode in range(20): observation = env.reset() for t in range(100): env.render() print(observation) action = env.action_space.sample() observation, reward, done, info = env.step(action) if done: print("Episode finished after {} timesteps".format(t+1)) break

但若測試control模塊還是會有問題,其提示:

錯誤:PUINT類型找不到

我查到的解決方案是,打開該文件,把PUINT去掉。再運行又報錯:

錯誤:沒有PyOpenGL包

下載PyOpenGL,我裝的是PyOpenGL-accelerate-3.1.1a1這個版本。解壓後,在該文件目錄中打開cmd,輸入python setup.py install,又報錯:

錯誤: 安裝PyOpenGL需要VC++9.0

下載安裝VC++ 9.0,再cmd重新執行python setup.py install,安裝成功:

OpenGL安裝成功

之後在打開的notebook里,重載下kernel,測試control模塊成功!

control模塊:CartPole測試成功圖

control模塊:MountainCar測試成功圖

但此時atari game還是測試失敗,提示:

錯誤: 沒有Atari庫

這裡注意了,若是安裝官方包pip install gym[atari]是肯定會失敗的。這裡我參考了OpenAI Gym Atari on Windows,發現已經有牛人封裝了windows下的atari模塊了,我們可以這樣裝:pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py-i pypi.tuna.tsinghua.edu.cn (這是我目前看到的所有方法中最簡單的)

安裝第三方Atari庫成功

裝完後,再重載下kernel,發現atari模塊終於可以用了!

atari模塊:兵乓遊戲Pong測試成功圖

至此,我們已經可以在win10下使用gym來測試包括Atari game以及經典的CartPole來研究強化學習演算法了。但美中不足的是,貌似python3的control和Atari模塊依然不可用,提示:

Python3測試失敗圖

該錯誤我還不知如何解決。至於gym的另外2個模塊:box2d和mujoco,目前我測試下來不管python2或3均不成功。感興趣的可自行測試~

所有測試結果

系統:win10x64

Python環境:

Python 2.7.13 |Anaconda 4.0.0 (32-bit)--->測試成功

Python 2.7.13 |Anaconda 4.4.0 (64-bit)--->測試成功

Python 2.7.13 |Anaconda 5.0.1 (64-bit)--->測試成功

Python 3.6.3 |Anaconda 5.0.1 (64-bit)--->測試失敗

GYM的使用

請參考這裡:簡書:如何使用OpenAI,寫得挺好的~

結語

在研究領域,相較於linxu,windows好像一直不受待見。這裡筆者結合網上的資料通過實踐給出了一個應該還算滿意的結果,雖然python3還不行。 (話說把圖片貼上來後才發現像素不高,算了,以後不截jpeg格式的圖了(⊙﹏⊙)~)

另外,鑒於今天這個特殊的日子,也預祝大家新的一年闔家團圓,萬事如意( ?? ω ?? )!


推薦閱讀:

TensorFlow 的常用模塊介紹
機器學習?人工智慧?傻傻分不清楚?
有自我意識和自由意志的強AI能否實現
利用AWS學習深度學習 For Udacity P5(第一篇:困惑)
意識的定義:以抽象的方式認知事物規律,並能夠加以運用。

TAG:強化學習ReinforcementLearning | 機器學習 | 人工智慧 |