最近课程需要,花了不少时间搭强化学习的环境,踩了不少坑,也解决了一些安装过程中出现的问题,整理了一下拿出来跟大家分享,也希望能给大家提供一些帮助。
环境:
Ubuntu14.04
CUDA8.0
CUDNN5.1
Anaconda3(mujoco_py的环境就是在conda里面搭建的)
Python3.5.5(在conda中使用的Python版本,不知道什么情况,我用3.6版本会出现一些奇葩的错误)
1)获取license:点这里
mjkey.txt
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
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
图片是报错的具体内容
解决方法如下:
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
下,之后再次导入模型文件就可以了。
安装gym也要在虚拟环境下进行安装
1)有两种方法
pip install gym
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
安装完整版的时候,有可能会出现一些依赖包安装不成功,比如swig,这时只要在环境内
conda install swig
把这些缺的依赖项补齐就可以了,缺什么补什么,总能安装成功的。
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