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-master
python 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.2
pip 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 marlo
conda config --add channels conda-forge
conda activate marlo # or `source activate marlo` depending on your conda version
conda install -c crowdai malmo
pip install -U marlo
稍等片刻后,便可成功安装!