多智能體強(qiáng)化學(xué)習(xí)MADRL的搭建
心之所愿,無所不成。
Nothing is impossible for a willing heart.
一、下載
進(jìn)入MADRL的Github官網(wǎng)
https://github.com/sisl/MADR
界面如下
創(chuàng)建虛擬環(huán)境
su root
conda create -n MARL
進(jìn)入創(chuàng)建好的虛擬環(huán)境
source activate MARL
檢查python版本建議在3.8及以下,因?yàn)?.9目前不支持一些庫
python
開始安裝多智能體強(qiáng)化學(xué)習(xí)環(huán)境
git clone --recursive git@github.com:sisl/MADRL.git
當(dāng)網(wǎng)絡(luò)不好時(shí),鏈接時(shí)間會(huì)超時(shí),出現(xiàn)以下情況
解決方法:
現(xiàn)通過windows直接通過網(wǎng)址頁面,點(diǎn)擊下載按鈕,下載到本地
再上傳到服務(wù)器
解壓后,進(jìn)入文件夾
二、安裝
打開終端,從這里進(jìn)入創(chuàng)建好的虛擬環(huán)境
輸入命令
source activate MARL
運(yùn)行測試
python3 runners/run_multiwalker.py rllab
出現(xiàn)報(bào)錯(cuò)
ModuleNotFoundError: No module named 'rltools.util'
安裝對應(yīng)模塊
pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com rltools
發(fā)現(xiàn)仍然不行,查看Requirements發(fā)現(xiàn),MADRL還需要OpenAI Gym和rllab這兩大庫。
安裝OpenAI Gym, 進(jìn)入網(wǎng)址
https://github.com/openai/gym
開始安裝
git clone https://github.com/openai/gym.git
點(diǎn)擊右側(cè)code進(jìn)行下載
將其傳到服務(wù)器上后,進(jìn)入對應(yīng) 文件夾 并進(jìn)行測試
cd rllab-master
出現(xiàn)錯(cuò)誤
from joblib.pool import MemmapingPoolImportError: cannot import name 'MemmapingPool' from 'joblib.pool' (/home/lab214/anaconda3/lib/python3.8/site-packages/joblib/pool.py)
找到rllab-master/rllab/sampler/stateful_pool.py
找到后,將MemmapingPool替換為MemmappingPool
修改后繼續(xù)運(yùn)行,又出現(xiàn)錯(cuò)誤
ModuleNotFoundError: No module named 'pyprind'
安裝pyprind
pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com pyprind
繼續(xù)運(yùn)行,發(fā)現(xiàn)沒有theano
安裝theano
pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com theano
繼續(xù)運(yùn)行,發(fā)現(xiàn)出現(xiàn)錯(cuò)誤
ImportError: cannot import name 'Num' from '_ast' (unknown location)
定位出錯(cuò)位置
定位文件位置
rllab-master/rllab/optimizers/conjugate_gradient_optimizer.py"
將“_ast”改為ast
繼續(xù)報(bào)錯(cuò)
ModuleNotFoundError: No module named 'cached_property'
定位文件位置
rllab-master/rllab/envs/base.py
將“from cached_property import cached_property”改為
from functools import cached_property
如下圖
出現(xiàn)錯(cuò)誤
cannot import name 'logger' from 'gym.wrappers.monitoring
定位文件位置 rllab/envs/gym_env.py
進(jìn)行修改看到是個(gè)try語句,先不做處理,繼續(xù)運(yùn)行
發(fā)現(xiàn)出現(xiàn)錯(cuò)誤
ModuleNotFoundError: No module named 'lasagne
安裝lasagne
pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com lasagne
出現(xiàn)錯(cuò)誤
cannot import name 'downsample' from 'theano.tensor.signal
定位文件位置
home/lab214/anaconda3/lib/python3.8/site-packages/lasagne/layers/pool.py
修改語句
將downsample替換為pool_2d發(fā)現(xiàn)仍然報(bào)錯(cuò)
更換版本
pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com theano==0.8.2
安裝完成后,再次運(yùn)行
又開始報(bào)錯(cuò)
AttributeError: 'EnvSpec' object has no attribute 'tags'
創(chuàng)建新環(huán)境
conda create -n marlo python==3.6
進(jìn)入新環(huán)境
source activate marlo
安裝malmo
pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com malmo
python -c 參數(shù)表示在命令行中調(diào)用python代碼 -c 就是command的意思
使用Anaconda安裝
conda create python=3.6 --name marlo
稍等片刻后,便可成功安裝!
對此,你有什么看法呢?如果你在操作過程中遇到了什么問題,或有什么想法和建議,在留言區(qū)留下你的足跡吧,與大家一起交流,一起進(jìn)步~