我发现只要用conda的环境副本安装,很快就能把环境弄好,mujoco,mujoco-py和baselines都是git上的包,下载就看网速了,最近搭好整个环境,网速好,十来分钟就解决了,想想之前从14到16版本,前前后后几个星期都有了。时间买经验。
2020.03.09
最近又重拾RL,发现baselines整个包都更新了,跟1年前有很大出入,特别是训练的指令,都更新了,重新把baselines部分更新一下,但环境安装还是一样没有变。
2020.03.04
这是我自己成功配置的conda环境副本,具体操作请根据本人发的文章进行操作
Ps:按照文章进行配置成功的就不需要用我这个的conda的环境副本了,即使用这个环境副本,有些需要通过pip安装的东西,还是要走一遍流程,下载地址
2020.03.04
在Ubuntu14上也搭了这个环境,但是最后训练的时候老是出问题,不是segmentation fault就是import error.Trying to rebuild mujoco_py,重新rebuild了也不行,一起做实验的小伙伴们果断放弃了14,投奔16,个个都成功了,所以啊,也是挺怪的这个。
2018.7.18
环境:
Ubuntu16.04
Anaconda3(mujoco_py的环境就是在conda里面搭建的)
Python3.5.5(在conda中使用的Python版本,不知道什么情况,我用3.6版本会出现一些奇葩的错误)
这里简单说一下Anaconda3的安装,已经安装了的可以跳过这一部分。
1)先到官网下载对应的版本,点这里
根据Python版本和系统选择下载。
2)安装
cd Downloads
bash Anaconda3-5.2.0-Linux-x86_64.sh
3)跟着一直按回车阅读那些许可文件即可,到最后会问你同不同意这些许可文件,输入yes
即可。
4)最后还会询问你安装路径,如果没有特殊要求,直接回车安装到默认目录下即可。
到这里就安装完成了。
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
先创建一个conda的环境再开始搭环境
conda create -n mujoco-py python=3.5 numpy
1)先在github上下载源码
git clone https://github.com/openai/mujoco-py.git
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]
感觉一般都会遇到
Error01:
pip安装完成后,进入Python
import mujoco_py
报错,提示gcc错误,这时输入
sudo apt-get install libgl1-mesa-dev libgl1-mesa-glx libosmesa6-dev python3-pip python3-numpy python3-scipy
补齐以上的包就不会再报错了,但我还是出现了错误(我的小伙伴们是没报错的,各踩各坑),错误如下,提示我要重新安装ttf-mscorefonts-installer
这个包
E: The package ttf-mscorefonts-installer needs to be reinstalled, but I can't find an archive for it
解决办法:
wget http://httpredir.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb
sudo dpkg -i ttf-mscorefonts-installer_3.6_all.deb
再重新运行
sudo apt-get install libgl1-mesa-dev libgl1-mesa-glx libosmesa6-dev python3-pip python3-numpy python3-scipy
就没问题了
安装gym也要在虚拟环境下进行安装
1)有两种方法
pip install gym
git clone https://github.com/openai/gym.git
cd gym
pip install -e .
以上安装的是简化版,而我们需要安装完整版:
apt-get install -y python-numpy python-dev cmake zlib1g-dev libjpeg-dev xvfb libav-tools xorg-dev python-opengl libboost-all-dev libsdl2-dev swig
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
在这里我又遇到问题了,有点难受,折腾了一天终于解决了,问题如下:
Error01:
Failed building wheel for atari-py
解决方法:安装cmake
和 zlib1g-dev
然后重新pip install就可以了
sudo apt install cmake libz-dev
其实原因应该是我重新装了16系统就来跑这个包,所以有不少依赖项没有安装。
Error02:
运行测试例程时又出错了,真是每一天睁开眼都是各种error(不抱怨不抱怨不抱怨),上图:
这个是格式问题,解决方法:
sudo dpkg-reconfigure locales
跟着会出现一个选择界面,先选All locales
,回车确认,之后还有一个列表,这时候选en_US.UTF-8
, 然后继续回车确认
跟着输入:
sudo locale-gen en_US en_US.UTF-8
reboot
重启之后再输入例程代码就可以了
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
果不其然,每一步都又错误,又出了个错误:
Error01:
在输入完pip install -e .
后,有个package没安装成功,如下:
Failed building wheel for mpi4py
解决方法:
其实又是缺依赖项
sudo apt install libopenmpi-dev
安装完再重新pip install就可以了。
现在baseline
的版本更新了,我把指令也一并更新了,按照这个来操作就可以了:
用FetchReach
环境和her
算法训练,参数保存在save_path
路径下:
python -m baselines.run --alg=her --env=FetchReach-v1 --num_timesteps=5000 --save_path=~/policies/her/fetchreach5k
可视化训练效果:
python -m baselines.run --alg=her --env=FetchReach-v1 --num_timesteps=0 --load_path=~/policies/her/fetchreach5k --play
2020.03.05
进入到/baselines/baselines/her/experiment文件夹下,在该文件夹下有:
开始训练,训练的命令是:
python train.py --num_cpu=2
python play.py /tmp/openai-2018-07-18-15-34-17-625849/policy_best.pkl
后面跟着的是训练好的参数文件,这个文件是保存在根目录tmp文件夹内的openai开头的文件(文件名是完成的时间日期)
一如既往的又有错误,输入训练命令python train.py --num_cpu=2
后,显示
CompileError: command '/usr/lib64/openmpi/bin/mpicc' failed with exit status 1
没有安装mpicc,可以通过指令which mpicc
查看安装的mpicc路径,如果没有输出就说明没有安装,装上就可以了。
sudo apt install mpich
如果上述的指令安装不了,可以再Google一下其他安装的方法,我试过好几种安装mpicc的方法了,有点混了,不确定用的是不是这个。
安装完再输入which mpicc
查看路径,如果不是在/usr/lib64/openmpi/bin/mpicc
这个路径下,把mpicc的可执行文件cp到这个路径下就可以了,加上sudo cp