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

27 篇文章 1 订阅
23 篇文章 2 订阅

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

前言:

照旧,又是一堆碎碎念,好久没有更新博客了,最近又在频繁的重装系统、配置环境中,因为这次是一个全新的环境,到现在也不知道这玩意儿能干啥,之前在自己的笔记本上折腾尝试了好几天,今天换到台式机,还是遇到了好多的坑,感觉如果不记录下来,以后再遇到,还是会遇到很多坑,所以,就花点时间做一个记录和分享,以便后来者减少一些试坑的时间。

参考博客:

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

系统配置:

  • Ubuntu16.04
  • Anaconda3(mujoco_py的环境就是在conda里面搭建的)
  • Python3.5
  • gpu-gtx960m
  • cpu-i7

步骤简介:

目的:安装surreal环境。
但是在这个之前,需要安装一些有趣的东西,比如anaconda,比如mujoco,我假设大家也是和我一样,从一个最原始的Ubuntu16系统开始安装,尽量在16.04下安装 ,因为14我是没有成功过。

1、先装anaconda,这个在其他的博客上直接搜就好了,提供一个清华的下载链接,可快了——链接
安装也很简单的——

bash Anaconda3-5.2.0-Linux-x86_64.sh

好像vs_code这个选择yes的话,会安装失败,不知道你们会如何。我直接选择了no,如果安装失败了,可以重新安装:

bash Anaconda3-5.2.0-Linux-x86_64.sh -u

如果版本比较低的话,可能需要先升级conda——

conda update conda

2、然后创建surreal的虚拟环境——

conda create -n surreal python=3.5

3、激活这个环境,然后需要装上这两个玩意儿mujoco和mujoco-py。

1、先装好mujoco:

1)获取license:点这里
可以免费申请一个30天使用期限的license—mjkey.txt
学生还可以通过教育邮箱获取一年免费license,在mjkey.txt中,同一个license可用于131,140,150版本的Mujoco
30天使用期限的license会立刻就发到你的邮箱里,一年使用期限的license会过一天后发到你学校的邮箱里面。
操作的步骤:先点Linux的那个下载的,然后会下载一个getid_linux的文件,修改它的执行权限:

sudo chmod 777 getid_linux

然后执行这个文件,获取传说中的计算机的id:

./getid_linux

复制终端上的id号,到网站上,点击发送邮件,在邮件中下载好这个秘钥文档,同样得修改权限,然后复制到需要的两个文件夹

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

如果看到这个图的话,基本上就OK了:
在这里插入图片描述

2、mujoco_py

这个的bug是最多的!

一个非常重要的问题,重新创建一个anaconda虚拟环境的时候,原来安装的mujoco_Py根本不用重新安装!
如果新环境安装错了!那么所有的环境都没有办法用了!

但是我好像是解决了~
你们要是没有解决的话,多试试吧~
我能怎么办呢?

1)先在github上下载源码

git clone https://github.com/openai/mujoco-py.git

2) 进入surreal环境中:

source activate surreal

跟着就可以开始安装mujoco_py,因为pip安装实在是太慢了,经常会卡死,而且我无法直接修改 ~/,pip/pip.conf文件,所以只能通过添加后缀的方式用pip安装——
3) pip国内源:

vim ~/.pip/pip.conf

因为不存在~/.pip文件夹,所以这个文件无法修改!
因此得先建一个文件夹:

cd ~ && mkdir .pip
cd .pip && vim pip.conf

然后加入四句话:

[global]

index-url = http://pypi.douban.com/simple

[install]

trusted-host=pypi.douban.com

这里有个问题,可能是需要先下载mujoco_py这个包,然后在解压后的包内执行下面的命令才行。

pip3 install -U 'mujoco-py<1.50.2,>=1.50.1' -i  http://pypi.douban.com/simple  --trusted-host pypi.douban.com

我的尝试基本上就到此为止了,因为换成国内源真的是太方便了!

如果不行的话,进入你刚才下载的mujoco-py的包,用源文件编译,也许也行,编译的步骤有这几步:

cd ~/.mujoco/mujoco-py-master
pip install -r requirement.txt -i  http://pypi.douban.com/simple  --trusted-host pypi.douban.com
pip install -r requirement.dev.txt -i  http://pypi.douban.com/simple  --trusted-host pypi.douban.com
python setup.py install 

如果不加国内源的话,基本凉凉~

后面的是原博客的尝试,我没试成功,不推荐。
注意:有不少人用pip3 install安装不成功,我也是,会弹gcc的error,改成pip就可以顺利安装了

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

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

4)最后是测试安装成功,进入Python环境,然后看看下面的代码是否能够跑出来,不报错,第一次运行的时候会有warning,很多,但是好像不影响,我也不知道以后会不会有。
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]

5)基本上只要一个anaconda虚拟环境装好了mujoco-py的环境,其他的也都能用~
6) 常见报错解决:
用mujoco_py的github库文件,本地编译,会出现不能自动链接glew的问题,虽然可以编译不报错,但是运行example文件的时候,出现下面的报错:
报错信息:

Running trained model Creating window glfw ERROR: GLEW initalization error: Missing GL version Press Enter to exit ...Killed

这时候就需要在~/.bashrc文件里加上显卡驱动的信息了,将三句话复制到最后。
由于可能存在最后一句话的.so文件名字不存在的问题,所以得根据各自系统的存在,进行调整!

export LD_LIBRARY_PATH=~/.mujoco/mjpro150/bin${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export MUJOCO_KEY_PATH=~/.mujoco${MUJOCO_KEY_PATH}
export export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so.1.13:/usr/lib/x86_64-linux-gnu/libGL.so

或者看别人的教程
https://blog.csdn.net/gsww404/article/details/80636676

3、安装pytorch了。

1)你应该有显卡,而且是不错的显卡,没有一个入门级的炼丹炉,是没有办法炼丹的,所以假设你至少有一个1080级的显卡,所以你得先安装一下显卡的驱动,来这份博客的链接吧——
推荐的是PPA安装,我找到的教程如下:
ubuntu16.04下NVIDIA GTX965M显卡驱动PPA安装
主要是在终端输入下面的几步:

找到你匹配的显卡驱动:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
找到适合你的本子的驱动版本:
ubuntu-drivers devices

在这里插入图片描述
大概就是最后一个,选择那个recommended,推荐的那个,然后输入:

sudo apt-get install nvidia-378

不用进入tty模式好像也行。反正我就没进入,你要是不成的话,和原教程里走一遍就行。
最后是重启

sudo reboot

重启系统后,执行下面的命令查看驱动的安装状态显示安装成功

sudo nvidia-smi
sudo nvidia-settings

2)anaconda安装pytorch,你先得换源为中科大的,这个你还是得看那个教程,或者其他百度。
然后安装命令:

conda install pytorch

4、终于安装surreal了

Install Surreal. Installing surreal through pip would install the surreal library and all its dependencies.
这个只需要pip安装就好了,没试过用国内源,反正都很快。

pip install surreal

Configure Surreal. Setup .surreal.yml. Run the following command to setup the surreal config file at ~/.surreal.yml.

配置配置文件,终端执行这句就好——

surreal-default-config

会产生这样一个文件~/.surreal.yml。
好像也不用改。

Install Tmux. We build upon tmux to manage experiments locally. You need to install tmux if you don’t already have it.安装tmux,也不知道是啥,反正得装上。
On linux——

sudo apt-get install tmux

因为有下面这段话——
Every time an experiment is created on tmux, result data will be written to <tmux_results_folder>/<experiment_name>. tmux_results_folder is specified in the config. (e.g. You can put all your experiment results in ~/surreal/tmux/)
大概的意思是,每次实验都在tmux上创建,数据结果将会写到<tmux_results_folder>/<experiment_name>这里,然后文件夹名字需要在配置文件~/.surreal.yml中定义出来,或者你将所有的实验都放到这个文件夹里。
在~/.surreal.yml文件中找到这段:

 tmux_results_folder: <put path here> # ~/surreal/tmux/

比如你想把输出文件放在tensorboardLogs文件夹中,你应该改为:

tmux_results_folder: /home/yourdesk_name/Downloads/Surreal-master/tensorboardLogs # ~/surreal/tmux/

If you want to know more about the config and other fields, refer to this guide. For now, we have what we need to setup local experiments.
这里是有坑的,哇,果然不该在自己的笔记本上跑,内存不够,直接卡死机了,编辑的博客没有及时保存,强制关机后,也都没了,难受,我简单写写吧

5、简单的使用surreal。

我目前只会三板斧:
根据官网上的创建命令:

surreal-tmux create your_experiment_name

然后你可以做简单的配置,通过查帮助,可以看到有这些参数:

usage: surreal-tmux create [-h] [--algorithm ALGORITHM]
                           [--num_agents NUM_AGENTS] [--num_evals NUM_EVALS]
                           [--env ENV] [--gpu GPU] [-dr]
                           experiment_name

positional arguments:
  experiment_name       experiment name will be used as namespace for DNS.
                        Should only contain lower case letters, digits, and
                        hypen. '_' ' ' '.' are not allowed and will be
                        converted to hyphen.

optional arguments:
  -h, --help            show this help message and exit
  --algorithm ALGORITHM
                        ddpg / ppo or the location of algorithm python script
  --num_agents NUM_AGENTS
                        number of agent pods to run in parallel.
  --num_evals NUM_EVALS
                        number of eval pods to run in parallel.
  --env ENV             What environment to run
  --gpu GPU             Which gpus to use: "auto" (default) uses all gpus
                        available through CUDA_VISIBLE_DEVICES, or use a comma
                        seperated list to override
  -dr, --dry-run        print the kubectl command without actually executing
                        it.

其中比较重要的是env,在配置文件中,有两种环境:
1、 env: gym:HalfCheetah-v2
2、 env: robosuite:SawyerLift

所以你可以这样尝试:

surreal-tmux create test --algorithm ddpg --num_agents 2 --num_evals 1

上次用了4个agents,直接就卡死了,这次用了两个,效果还好些。

6、Robosuite安装和测试

不考虑pip install from pypi.
只考虑Install from source
1、下载Robosuite库文件:
https://codeload.github.com/StanfordVL/robosuite/zip/master
2、解压进入目录,先

pip install -r requirements.txt

pip install -r requirements-extra.txt

这里关键是要安装好mujoco-py<1.50.2,>=1.50.1
测试是否安装好——
在终端输入Python,进入调试模式:

import mujoco_py

不出现报错才行。
3、运行这句话:

python setup.py install 

4、执行测试的demo文件

python robosuite/demo.py

如果一切OK,就行了。
如果不行,那么就得看看第七大步,导入几个路径的问题。

7、常见坑的解决:

上面已经安装了三个包了:
第一个mujoco,算是基础,麻烦在于秘钥和路径,基本上都能解决。
第二个的gcc是一个很麻烦的事儿,各种报错,反正重装系统后不要安装其他乱七八糟的软件,直接先装这些,按照github官网上的在线安装来,pip3和pip都可以试试。如果离线安装,就是下载包,之后pip本地安装的话,问题也是有的,参考博客提供的解决方案是可以用的。本地安装主要是为了测试一些基本的可视化demo。
尝试demo的时候,会报错,总之可以参考这样的bashrc的配置:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.mujoco/mjpro150/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia-384
export PYTHONPATH="${PYTHONPATH}:/home/lyl/Downloads/surreal-master/surreal"
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIB
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/nvidia-384/l             
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hehedadaq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值