相关文章推荐
豁达的帽子  ·  解决:pandas.errors.Empty ...·  2 月前    · 
坚韧的李子  ·  React Hooks 详解 【近 1W ...·  1 年前    · 
欢快的开水瓶  ·  wpf - How to bind to ...·  1 年前    · 

强化学习环境配置(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

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

有如下输出即说明安装成功:
game

在这里我又遇到问题了,有点难受,折腾了一天终于解决了,问题如下:
Error01:
Failed building wheel for atari-py
atari-py

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

 sudo apt install cmake libz-dev

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

Error02:
运行测试例程时又出错了,真是每一天睁开眼都是各种error(不抱怨不抱怨不抱怨),上图:
import-gym
这个是格式问题,解决方法:

sudo dpkg-reconfigure locales

跟着会出现一个选择界面,先选All locales,回车确认,之后还有一个列表,这时候选en_US.UTF-8, 然后继续回车确认
locales
跟着输入:

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
baselines
解决方法:
其实又是缺依赖项

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

训练过程如图所示:
training
训练好后,进行调用:

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

后面跟着的是训练好的参数文件,这个文件是保存在根目录tmp文件夹内的openai开头的文件(文件名是完成的时间日期)
fetch

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

Humanoid-Robot-with-Arduino 整个实验将使用类人机器人(研究代号 G-Bot V3)。 G-Bot V3 是 Robotis 的 19 自由度 (DOF) 机器人。 它由 19 个 Dynamixel Ax-12 舵机 + 1 个声音/距离传感器组成,由 CM5 控制器控制。 实验可以分为3个主要部分: 用 Arduino Yun/Uno 替换 CM5 控制器 伺服运动曲线的 SD 卡存储 物联网通讯 world = mjcpy.MJCWorld(model_path) ERROR: Could not open activation key file src/3rdparty/mjpro/mjkey.txt Press Enter to exit … 在terminal中尝试 成功案例! 失败案例! pycharm中尝试 问题的根本原因 working directory的不同,导致了问题 <br />安装ttf-mscorefonts-installer中出错的原因是需要的文件无法下载。<br />我们可以事先下载好,在安装ttf-mscorefonts-installer<br /><br />1. 下载所需的所有的字体,到http://sourceforge.net/projects/corefonts/files/ 下。会有个别不容易下,多尝试几下,下不了的话,看上面有一行英文:Problems with the download? Please use this direct lin 所以把mujoco_rendering.py文件第593行代码中的 self.data.solver_iter 更改为 self.data.solver_niter 即可。 安装完毕,将C:\Users\yonghuming\.conda\envs\xxx\Lib\site-packages内的mujoco_py文件夹替换为下载的mujoco_py(这个好像能避免一些问题)在C:\Users\yonghuming中新建一个名为.mujoco的文件夹,把下载的压缩包解压到其中,命名为mujoco210(必须是这个命名)(尝试了修改mujoco-py\mujoco_py\builder.py,没用,而且建议不修改,可能会出现其他奇怪的问题)高赞回答,需要在自己的代码中添加。 和其它的机器学习方向一样,强化学习(Reinforcement Learning)也有一些经典的实验场景,像Mountain-Car,Cart-Pole等。由于近年来深度强化学习(Deep Reinforcement Learning)的兴起,各种新的更复杂的实验场景也在不断涌现。于是出现了OpenAI GymMuJoCo,rllab, DeepMind Lab,... Ubuntu1804 成功安装Mujocomujoco_py 详细步骤、安装教程(也可在虚拟环境中安装Mujoco )1. mujoco安装1.1 mujoco证书秘钥获取1.2 mujoco下载2. mujoco的环境变量配置3. mujoco_py安装与配置3.1 mujoco_py下载3.2 mujoco_py安装 说明:虚拟环境中安装,需要在一开始激活虚拟环境,其他安装过程一样(我...