學(xué)了有一會(huì)兒RL,總覺得需要?jiǎng)邮诌\(yùn)行幾個(gè)Demo才過癮,Gym就提供了很好的平臺(tái),降低了實(shí)驗(yàn)RL的門檻订讼。
OpenAI Gym是一款用于研發(fā)和比較強(qiáng)化學(xué)習(xí)算法的工具包。與其他的數(shù)值計(jì)算庫兼容沪摄,如tensorflow 或者theano 庫∏担現(xiàn)在主要支持的是python 語言。它可以支持訓(xùn)練智能體(agent)做任何事——從行走到玩Pong或圍棋之類的游戲都在范圍中杨拐。官方提供的gym文檔祈餐。
1. 安裝環(huán)境(MacOS下)
Gym目前只支持Linux和Mac,所以Windows的朋友們就先在虛擬機(jī)上玩一玩啦哄陶。
- Step1 先確保安裝好homebrew和Xcode帆阳,Xcode最好升級(jí)到最新版并安裝命令行工具∥荻郑可以檢查一下兩個(gè)都安裝了沒
(1)國內(nèi)安裝homebrew會(huì)很心累的蜒谤,強(qiáng)烈推薦一篇安裝教程把源都換成中科院的源(親測可用):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默認(rèn)的安裝版本是2.7.X,但是未來的趨勢將會(huì)是python3敢课,python2只會(huì)維護(hù)到2020年阶祭。由于MacOS依賴2.7的python,所以不能改動(dòng)默認(rèn)的python版本直秆。用brew就可以方便的兼容兩者濒募。python3自帶pip3。注意檢查python需要3.5以上版本圾结。強(qiáng)烈注意:
這一步做完之后請參考這篇博客瑰剃,把python降級(jí)為python3.6,目前還不支持最新的python3筝野,可能不久的將來會(huì)支持晌姚,反正遇到問題思考一下可能是python版本的問題
brew install python3
python3 --version
pip3 --version
- Step3 安裝gym工具包,不帶
--user
會(huì)有權(quán)限問題歇竟,建議帶上舀凛,安裝后根據(jù)提示把/Users/${youname}/Library/Python/3.7/bin
放到PATH目錄下。后面需要下載全套代碼再考慮(all)
參數(shù)
pip3 install gym --user
環(huán)境就這么簡單配好啦途蒋!
2. 安裝Gym
官網(wǎng)入門指南就直接有配環(huán)境和下載代碼的手把手步驟,非常清晰馋记。代碼直接從git庫下載下來号坡。
git clone https://github.com/openai/gym
cd gym
pip3 install -e .
可以稍后運(yùn)行pip3 install -e '.[all]'
來執(zhí)行包含所有環(huán)境的完整安裝懊烤。 這需要安裝幾個(gè)更復(fù)雜的依賴項(xiàng),包括cmake和最近的pip版本宽堆。
記錄遇到的問題
(1)運(yùn)行pip install -e. [all]
遇到matplotlib的1.3.1版本需要nose腌紧、tornado,另外numpy的版本1.8.0rc1不匹配畜隶。參考這篇博文使用了命令強(qiáng)行升級(jí)numpy壁肋,然后安裝另外兩個(gè)。
sudo pip install --ignore-installed numpy
sudo easy_install nose
sudo easy_install tornado
(2)還是失敗籽慢,根據(jù)git庫的README文檔安裝了一些依賴
brew install cmake boost boost-python sdl2 swig wget
brew install boost-python --with-python3
(3)最后才想起浸遗,我是用pip3安裝的gym,趕緊把pip install改成pip3箱亿。終于顯示安裝gym成功.
(4)運(yùn)行
pip3 install -e '.[all]'
的時(shí)候發(fā)現(xiàn)沒有安裝MuJoCo跛锌,參考這篇博客可以先把gym/setup.py的mujoco和robotics選項(xiàng)注釋掉,后面需要的話用pip install -e '.[mujoco]'
重新安裝届惋。3. 編寫和運(yùn)行第一個(gè)demo
首先可以試一下最簡單的一個(gè)CartPole-v0環(huán)境髓帽,下面的代碼包含了1000次渲染環(huán)境的代碼,使用的是最簡單的隨機(jī)步驟(當(dāng)然這種算法一定無法收斂)脑豹。
#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
運(yùn)行例子出現(xiàn)灰屏問題
運(yùn)行pip3 install tensorflow
發(fā)現(xiàn)自己python3.7版本太高郑藏,用這篇博客的方法降級(jí)到Python3.6。然后把重新安裝了gym瘩欺,沒有安裝tensorflow就解決了白屏問題必盖,這坑爹的3.7...
運(yùn)行python3 demo.py
后就可以看到一個(gè)窗口彈出呈現(xiàn)經(jīng)典的車竿問題。