强化学习环境配置(Ubuntu16.04)---gym、mujoco、mujoco-py、baselines安装与测试

强化学习环境配置(Ubuntu16.04)—gym、mujoco、mujoco-py、baselines安装与测试

我发现只要用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.mujoco

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

mujoco

2.mujoco_py

先创建一个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

就没问题了

3.gym

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

  • 直接pip安装
 pip install gym
  • 或者git clone下来再装
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

有如下输出即说明安装成功:
强化学习环境配置(Ubuntu16.04)---gym、mujoco、mujoco-py、baselines安装与测试_第1张图片


在这里我又遇到问题了,有点难受,折腾了一天终于解决了,问题如下:
Error01:
Failed building wheel for atari-py
强化学习环境配置(Ubuntu16.04)---gym、mujoco、mujoco-py、baselines安装与测试_第2张图片

解决方法:安装cmakezlib1g-dev然后重新pip install就可以了

 sudo apt install cmake libz-dev

其实原因应该是我重新装了16系统就来跑这个包,所以有不少依赖项没有安装。

Error02:
运行测试例程时又出错了,真是每一天睁开眼都是各种error(不抱怨不抱怨不抱怨),上图:
强化学习环境配置(Ubuntu16.04)---gym、mujoco、mujoco-py、baselines安装与测试_第3张图片
这个是格式问题,解决方法:

sudo dpkg-reconfigure locales

跟着会出现一个选择界面,先选All locales,回车确认,之后还有一个列表,这时候选en_US.UTF-8, 然后继续回车确认
强化学习环境配置(Ubuntu16.04)---gym、mujoco、mujoco-py、baselines安装与测试_第4张图片
跟着输入:

sudo locale-gen en_US en_US.UTF-8
reboot

重启之后再输入例程代码就可以了


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 

果不其然,每一步都又错误,又出了个错误:
Error01:
在输入完pip install -e . 后,有个package没安装成功,如下:
Failed building wheel for mpi4py
强化学习环境配置(Ubuntu16.04)---gym、mujoco、mujoco-py、baselines安装与测试_第5张图片
解决方法:
其实又是缺依赖项

sudo apt install libopenmpi-dev

安装完再重新pip install就可以了。


5.baselines 中HER(Hindsight experience replay)的使用


现在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文件夹下,在该文件夹下有:

  • config.py:设置参数
  • train.py:训练DDPG+HER中的参数,诸如神经网络中的参数等
  • play.py:调用训练好的参数

开始训练,训练的命令是:

python train.py --num_cpu=2

训练过程如图所示:
强化学习环境配置(Ubuntu16.04)---gym、mujoco、mujoco-py、baselines安装与测试_第6张图片
训练好后,进行调用:

python play.py /tmp/openai-2018-07-18-15-34-17-625849/policy_best.pkl

后面跟着的是训练好的参数文件,这个文件是保存在根目录tmp文件夹内的openai开头的文件(文件名是完成的时间日期)
强化学习环境配置(Ubuntu16.04)---gym、mujoco、mujoco-py、baselines安装与测试_第7张图片


一如既往的又有错误,输入训练命令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


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