强化学习环境配置(Ubuntu14.04)---gym、mujoco、mujoco-py、baselines

强化学习环境配置(Ubuntu14.04)—gym、mujoco、mujoco-py、baselines

最近课程需要,花了不少时间搭强化学习的环境,踩了不少坑,也解决了一些安装过程中出现的问题,整理了一下拿出来跟大家分享,也希望能给大家提供一些帮助。


环境:
Ubuntu14.04
CUDA8.0
CUDNN5.1
Anaconda3(mujoco_py的环境就是在conda里面搭建的)
Python3.5.5(在conda中使用的Python版本,不知道什么情况,我用3.6版本会出现一些奇葩的错误)


1.MuJoCo(Multi-Joint dynamics with Contact)

1)获取license:点这里

  • 可以免费申请一个30天使用期限的license—mjkey.txt
  • 学生还可以通过教育邮箱获取一年免费license,在mjkey.txt中,同一个license可用于131,140,150版本的Mujoco
    30天使用期限的license会立刻就发到你的邮箱里,一年使用期限的license会过一天后发到你学校的邮箱里面。

2)下载mujoco150 for linux

3)在home目录下创建隐藏文件夹mujoco,并将刚才下载好的安装包解压到这个文件夹下。

mkdir ~/.mujoco
cp mjpro150_linux.zip ~/.mujoco
cd ~/.mujoco
unzip mjpro150_linux.zip

4)将获得的mjkey.txt放到~/.mujoco 和 ~/.mujoco/mjpro150/bin 下

cp mjkey.txt ~/.mujoco
cp mjkey.txt ~/.mujoco/mjpro150/bin

5)添加环境变量, 打开~/.bashrc 文件,将以下命令添加进去

gedit ~/.bashrc
export LD_LIBRARY_PATH=~/.mujoco/mjpro150/bin${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export MUJOCO_KEY_PATH=~/.mujoco${MUJOCO_KEY_PATH}

6)运行测试

cd ~/.mujoco/mjpro150/bin
./simulate ../model/humanoid.xml

强化学习环境配置(Ubuntu14.04)---gym、mujoco、mujoco-py、baselines_第1张图片

2.mujoco_py

1.安装mujoco_py前,先在conda下建好虚拟环境(注意:生成环境的时候选择Python3.5)

conda create -n mujoco-py python=3.5 numpy

2.跟着就可以激活进入环境开始安装mujoco_py

pip3 install -U 'mujoco-py<1.50.2,>=1.50.1'

注意:有不少人用pip3 install安装不成功,我也是,会弹gcc的error,改成pip就可以顺利安装了

pip install -U 'mujoco-py<1.50.2,>=1.50.1'

3.pip install安装成功后测试一下在Python中能正常导入:
开始启动用python或python3都一样,根据你当前环境所安装的python版本打开的。

python
import mujoco_py
from os.path import dirname
model = mujoco_py.load_model_from_path(dirname(dirname(mujoco_py.__file__))  +"/xmls/claw.xml")
sim = mujoco_py.MjSim(model)
print(sim.data.qpos)
#[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
sim.step()
print(sim.data.qpos)
#[ 2.09217903e-06 -1.82329050e-12 -1.16711384e-07 #-4.69613872e-11
# -1.43931860e-05  4.73350204e-10 -3.23749942e-05 #-1.19854057e-13
# -2.39251380e-08 -4.46750545e-07  1.78771599e-09 -1.04232280e-08]

可能会遇到的error
Error01:
在输入import mujoco_py 后有可能会报错,如下所示
error: command 'gcc' failed with exit status 1
图片是报错的具体内容
强化学习环境配置(Ubuntu14.04)---gym、mujoco、mujoco-py、baselines_第2张图片
解决方法如下:

sudo apt-get install libosmesa6-dev

之后再次import mujoco_py就没报错了,亲测可行。

Error02:
在导入模型xml文件时
model = mujoco_py.load_model_from_path(dirname(dirname(mujoco_py.__file__)) +"/xmls/claw.xml")
可能也会报错,提示在路径下没有找到该文件,如下所示:

>>> model = mujoco_py.load_model_from_path(dirname(dirname(mujoco_py.__file__))  +"/xmls/claw.xml")
Traceback (most recent call last):
  File "", line 1, in 
  File "lib/python3.5/site-packages/mujoco_py/cymj.pyx", line 131, in mujoco_py.cymj.load_model_from_path
    raise Exception('Failed to load XML file: %s. mj_loadXML error: %s' % (path, errstr,))
Exception: Failed to load XML file: /home/will/anaconda3/envs/mujoco-py/lib/python3.5/site-packages/xmls/claw.xml. mj_loadXML error: b'XML parse error at line 0, column 0:\nFailed to open file\n'

提示缺失的文件夹可以在mujoco-py包中(git clone后安装的那个),打开mujoco-py文件下,目录下会有一个xmls的文件夹,把这个文件夹copy到/home/(username)/anaconda3/envs/mujoco-py/lib/python3.5/site-packages 下,之后再次导入模型文件就可以了。


3.gym

安装gym也要在虚拟环境下进行安装
1)有两种方法

  • 直接pip安装
 pip install gym
  • 或者git clone下来再装
git clone https://github.com/openai/gym.git
cd gym
pip install -e .

这时安装的是简化版,安装完整版输入:

pip install -e .[all]

2)运行测试



import gym
env = gym.make('Hero-ram-v0')
for i_episode in range(20):
    observation = env.reset()
    for t in range(100):
        env.render()
        print(observation)
        action = env.action_space.sample()
        observation, reward, done, info = env.step(action)
        if done:
            print("Episode finished after {} timesteps".format(t+1))
            break

强化学习环境配置(Ubuntu14.04)---gym、mujoco、mujoco-py、baselines_第3张图片


安装完整版的时候,有可能会出现一些依赖包安装不成功,比如swig,这时只要在环境内

conda install swig 

把这些缺的依赖项补齐就可以了,缺什么补什么,总能安装成功的。


4.baselines

baseline要求python3.5以上的版本
安装:

git clone https://github.com/openai/baselines.git
cd baselines
pip install -e .

一些baseline是的例程需要使用mujoco这个物理仿真器,所以还要安装pytest

pip install pytest
pytest

会有如下输出:

================================================================================== test session starts ==================================================================================
platform linux -- Python 3.6.6, pytest-3.6.3, py-1.5.4, pluggy-0.6.0
rootdir: /home/hansry/append/RL/baselines, inifile:
collected 12 items                                                                                                                                                                      

baselines/common/test_identity.py 

你可能感兴趣的:(Reinforcement,learning)