迷霧探險10 | 踩坑Gym

weixin_34148340發表於2018-12-27

學了有一會兒RL,總覺得需要動手執行幾個Demo才過癮,Gym就提供了很好的平臺,降低了實驗RL的門檻。

OpenAI Gym是一款用於研發和比較強化學習演算法的工具包。與其他的數值計算庫相容,如tensorflow 或者theano 庫。現在主要支援的是python 語言。它可以支援訓練智慧體(agent)做任何事——從行走到玩Pong或圍棋之類的遊戲都在範圍中。官方提供的gym文件

1. 安裝環境(MacOS下)

Gym目前只支援Linux和Mac,所以Windows的朋友們就先在虛擬機器上玩一玩啦。

  • Step1 先確保安裝好homebrew和Xcode,Xcode最好升級到最新版並安裝命令列工具。可以檢查一下兩個都安裝了沒
    (1)國內安裝homebrew會很心累的,強烈推薦一篇安裝教程把源都換成中科院的源(親測可用):https://blog.csdn.net/qq_35624642/article/details/79682979
    (2)xcode安裝好了之後可以省掉很多編譯器的安裝。在Appstore下載安裝好xcode後再安裝一下xcode-select。xcode-select --install
brew --version
xcode-select --version
  • Step2 安裝Python3
    (1)安裝homebrew是為了安裝Python3。Mac預設的安裝版本是2.7.X,但是未來的趨勢將會是python3,python2只會維護到2020年。由於MacOS依賴2.7的python,所以不能改動預設的python版本。用brew就可以方便的相容兩者。python3自帶pip3。注意檢查python需要3.5以上版本。強烈注意:這一步做完之後請參考這篇部落格,把python降級為python3.6,目前還不支援最新的python3,可能不久的將來會支援,反正遇到問題思考一下可能是python版本的問題
brew install python3
python3 --version
pip3 --version
  • Step3 安裝gym工具包,不帶--user會有許可權問題,建議帶上,安裝後根據提示把/Users/${youname}/Library/Python/3.7/bin 放到PATH目錄下。後面需要下載全套程式碼再考慮(all)引數
pip3 install gym --user

環境就這麼簡單配好啦!

2. 安裝Gym

官網入門指南就直接有配環境和下載程式碼的手把手步驟,非常清晰。程式碼直接從git庫下載下來。

git clone https://github.com/openai/gym
cd gym
pip3 install -e .

可以稍後執行pip3 install -e '.[all]'來執行包含所有環境的完整安裝。 這需要安裝幾個更復雜的依賴項,包括cmake和最近的pip版本。

記錄遇到的問題
(1)執行pip install -e. [all]遇到matplotlib的1.3.1版本需要nose、tornado,另外numpy的版本1.8.0rc1不匹配。參考這篇博文使用了命令強行升級numpy,然後安裝另外兩個。

sudo pip install --ignore-installed numpy
sudo easy_install nose
sudo easy_install tornado

(2)還是失敗,根據git庫的README文件安裝了一些依賴

brew install cmake boost boost-python sdl2 swig wget
brew install boost-python --with-python3

(3)最後才想起,我是用pip3安裝的gym,趕緊把pip install改成pip3。終於顯示安裝gym成功.

7720139-db19316fa58b67ac.png
pip install gym.png

(4)執行pip3 install -e '.[all]'的時候發現沒有安裝MuJoCo,參考這篇部落格可以先把gym/setup.py的mujoco和robotics選項註釋掉,後面需要的話用pip install -e '.[mujoco]'重新安裝。
7720139-ae3367d4b8071498.png
pip install gym omit mujoco.png


3. 編寫和執行第一個demo

首先可以試一下最簡單的一個CartPole-v0環境,下面的程式碼包含了1000次渲染環境的程式碼,使用的是最簡單的隨機步驟(當然這種演算法一定無法收斂)。

#demo.py
import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
    env.render()
    env.step(env.action_space.sample()) # take a random action

執行例子出現灰屏問題
執行pip3 install tensorflow發現自己python3.7版本太高,用這篇部落格的方法降級到Python3.6。然後把重新安裝了gym,沒有安裝tensorflow就解決了白屏問題,這坑爹的3.7...
執行python3 demo.py後就可以看到一個視窗彈出呈現經典的車竿問題。

7720139-a44279bb32b4579f.png
第一個成功的gym例子

相關文章