1. 程式人生 > >《深入淺出強化學習》學習筆記01-環境配置-20180213

《深入淺出強化學習》學習筆記01-環境配置-20180213

最近在看郭博士的《深入淺出強化學習-原理入門》,這應該算是現在少有的強化學習入門書籍吧。不過看的過程中也會遇到一些困難,苦於沒人討論,比較坎坷,因此記錄下歷程,希望日後能找到志同道合的同學一起討論。

此篇博文主要記錄相關環境配置與軟體安裝,所用系統為ubuntu16.04。

1. 安裝python

以前對應python不是很熟悉,在同學建議下,安裝anaconda大禮包。首先去清華映象源下載安裝包,下載地址:

https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

版本眾多,一開始安裝了anaconda3-5.0.1,不過後來遇到了一系列問題,然後解除安裝,安裝書本例程中的4.3.0。其實4.3.0安裝也遇到了問題,所以我感覺一開始遇到的問題應該不是anaconda所導致的。以下命令安裝,

bash anaconda3_4.3.0-linux-x86_64.sh  

安裝期間遇到是否新增路徑等詢問,建議yes,以免日後麻煩。

安裝完成後在~/目錄下多了資料夾anaconda3。重開一個終端,使得環境變數起作用。

2. 建立虛擬環境

conda create --name gymlab python=3.5

--name後面是自定義虛擬環境名字, python=3.5表示在虛擬環境中安裝python3.5。成功建立的話,會在anaconda3/envs下多一個gymlab。若沒有,檢視下~/.conda/envs。這兩個我都遇到過,我猜測是不同版本anaconda導致或者anaconda安裝時不同選項導致。

啟用虛擬環境

source activate gymlab //啟用虛擬環境
source deactivate      //關閉虛擬環境

3. 安裝gym

git clone https://github.com/openai/gym.git   //下載原始碼
cd gym                     //進入資料夾目錄
pip install -e '.[all]'    //完全安裝

其中最後一步往往是不成功的,會遇到各種問題,首先更具書本建議安裝一系列依賴項

sudo apt-get install python-numpy python-dev cmake zlib1g-dev libjpeg-dev xvfb libav-tools xorg-dev python-opengl libboost-all-dev libsdl2-dev swig 

然後再試,似乎還是不成功,顯示在安裝mujoco時出錯。mujoco是物理引擎,這是一個有版權的軟體,需單獨安裝。首先下載原始碼

https://github.com/openai/mujoco-py

按照github上readme步驟。解壓zip包至~/.mujoco/mjpro150 。並且在官網用教育郵箱註冊,獲得key.txt。將key拷貝至mujoco的bin資料夾。至此,應該是可以執行mujoco了。測試,進入mujoco的bin目錄

./simulate ../model/humanoid.xml
可能會提示報錯
error while loading shared libraries: libmujoco150.so: cannot open shared object file: No such file or directory

這是動態連結庫問題,臨時解決方案,

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.mujoco/mjpro150/bin/
export LD_LIBRARY_PATH

再測試OK。OpenAI對mujoco引擎做了python 3的介面,按照github方法進行安裝沒有成功,即

pip3 install -U 'mujoco-py<1.50.2,>=1.50.1'
折騰了挺久也沒成功,隨後原始碼安裝成功了
git clone https://github.com/openai/mujoco-py
cd mujoco-py
pip install -e . --no-cache

似乎也前面有點重,暫時不管那麼多了,沒報錯就是ok的。

最後再回到最初的gym安裝,

cd gym                     //進入資料夾目錄
pip install -e '.[all]'    //完全安裝

成功。

4. 例程測試

新開一個視窗

source activate gymlab    //啟用虛擬環境
python                    //進入Python
import gym
env = gym.make('CartPole-v0')
env.reset()
env.render()

備註:

(1)在遇到Python版本問題時,熟練運用which python / whereis python等命令檢視

(2)動態連結庫問題,上述解決方案只是在臨時設定,下次開機將失效。想永久有效,可以寫進~/.bashrc。在檔案末尾新增

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.mujoco/mjpro150/bin/

這將在每次登入和開啟shell時生效一次。