MADRL怎么搭建?CentOS下多智能体强化学习实验环境搭建【收藏干货】
 
心之所愿,无所不成。
Nothing is impossible for a willing heart.
一、下载
进入MADRL的Github官网
https://github.com/sisl/MADR 
 界面如下
创建虚拟环境
su root 
 conda create -n MARL 
 进入创建好的虚拟环境
source activate MARL 
 检查python版本建议在3.8及以下,因为3.9目前不支持一些库
python 
 开始安装多智能体强化学习环境
git clone --recursive git@github.com:sisl/MADRL.git 
 当网络不好时,链接时间会超时,出现以下情况
解决方法:
现通过windows直接通过网址页面,点击下载按钮,下载到本地
再上传到服务器
解压后,进入文件夹
二、安装
打开终端,从这里进入创建好的虚拟环境
输入命令
source activate MARL 
 运行测试
python3 runners/run_multiwalker.py rllab 
 出现报错
ModuleNotFoundError: No module named 'rltools.util'
 
 安装对应模块
pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com rltools 
 发现仍然不行,查看Requirements发现,MADRL还需要OpenAI Gym和rllab这两大库。
安装OpenAI Gym, 进入网址
https://github.com/openai/gym 
 
开始安装
git clone https://github.com/openai/gym.git 
 点击右侧code进行下载
将其传到服务器上后,进入对应 文件夹 并进行测试
cd rllab-masterpython examples/trpo_gym_cartpole.py
出现错误
 from joblib.pool import MemmapingPool
ImportError: 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
修改后继续运行,又出现错误
ModuleNotFoundError: No module named 'pyprind'
 
 安装pyprind
pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com pyprind 
 继续运行,发现没有theano
安装theano
pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com theano 
 继续运行,发现出现错误
ImportError: cannot import name 'Num' from '_ast' (unknown location)
 
 定位出错位置
定位文件位置
rllab-master/rllab/optimizers/conjugate_gradient_optimizer.py"
 
 将“_ast”改为ast
继续报错
ModuleNotFoundError: No module named 'cached_property'
 
 定位文件位置
rllab-master/rllab/envs/base.py
 
 将“from cached_property import cached_property”改为
from functools import cached_property 
 如下图
出现错误
cannot import name 'logger' from 'gym.wrappers.monitoring
 
 定位文件位置 rllab/envs/gym_env.py
进行修改看到是个try语句,先不做处理,继续运行
发现出现错误
 ModuleNotFoundError: No module named 'lasagne
 
 安装lasagne
pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com lasagne 
 出现错误
cannot import name 'downsample' from 'theano.tensor.signal
 
 定位文件位置
home/lab214/anaconda3/lib/python3.8/site-packages/lasagne/layers/pool.py
 
 修改语句
将downsample替换为pool_2d发现仍然报错
更换版本
pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com theano==0.8.2pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com lasagne==0.1
安装完成后,再次运行
又开始报错
AttributeError: 'EnvSpec' object has no attribute 'tags'
 
 创建新环境
conda create -n marlo python==3.6 
 进入新环境
source activate marlo 
 安装malmo
pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com malmo 
 python -c 参数表示在命令行中调用python代码  -c 就是command的意思
使用Anaconda安装
conda create python=3.6 --name marloconda config --add channels conda-forgeconda activate marlo # or `source activate marlo` depending on your conda versionconda install -c crowdai malmopip install -U marlo
稍等片刻后,便可成功安装!
