《深入淺出強化學習》學習筆記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時生效一次。