Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI(2)

和OpenAI Gym类似,rllab也是一个研究强化学习算法的框架。官方网站为https://github.com/openai/rllab。官方支持python 3.5+,基于Theano。与OpenAI Gym的区别在于OpenAI Gym支持更广泛的环境,且提供在线的scoreboard可以用于共享训练结果。rllab自己也提供一个基于pygame的可视环境,同时它也可兼容OpenAI Gym。除此之外,它提供了一些强化学习算法的实现,这些参考实现和一些组件可以使得强化学习算法的开发更快上手。安装步骤可按照官方网站:https://rllab.readthedocs.io/en/latest/user/installation.html。

export PYTHONPATH=path_to_rllab:$PYTHONPATH ./scripts/setup_linux.sh

如果要想要在rllab中用MuJoCo的话再用下面脚本安装。

./scripts/setup_mujoco.sh

rllab使用的是mujoco 1.31版本,这个脚本里会让指定相应的mujoco包和license key文件。以上安装脚本中会创建Anaconda环境,名为rllab3。通过下面命令进入环境:

source activate rllab3

然后就可以运行例子了。比如用TRPO算法训练Cart-Pole场景的话,运行:

python examples/trpo_gym_cartpole.py

这些sample中默认是无UI的,如果要有UI,可以搜索其中的plot=True,将之反注释即可。

Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI


如果你很和我一样穷,用的是贫民版GPU,加速时分不出memory的话:
RuntimeError: Cuda error: kernel_reduce_ccontig_node_m28488bfe450723ef20f18edd8e611eb0_0: out of memory. (grid: 1 x 1; block: 256 x 1 x 1)
可以退一步让Theano用纯CPU跑:

export THEANO_FLAGS=device=cpu DeepMind Lab

DeepMind Lab(原Labyrinth)是由DeepMind发布的3D迷宫场景强化学习平台。之前是DeepMind内部使用的,后来开源了。官方介绍https://deepmind.com/blog/open-sourcing-deepmind-lab/。论文 https://arxiv.org/pdf/1612.03801.pdf。源码位于https://github.com/deepmind/lab。
最好在Python 2.7环境下编译运行。比如用Anaconda创建Python 2.7环境并进入:

conda create --name py27 python=2.7 source activate py27

然后按官方readme中的说明(https://github.com/deepmind/lab/blob/master/docs/build.md)安装。由于编译是基于bazel,所以需要先安装bazel。

sudo apt-get install lua5.1 liblua5.1-0-dev libffi-dev gettext freeglut3-dev libsdl2-dev libosmesa6-dev python-dev python-numpy realpath git clone https://github.com/deepmind/lab cd lab bazel build :deepmind_lab.so --define headless=glx bazel run :python_module_test --define headless=glx

如果在Anaconda环境中,有可能碰到下面错误:
ImportError: cannot import name multiarray
表面上是缺少numpy,可以先看下numpy有没有装,没有的话可以用conda install numpy安装。如果装了有可能是串到~/.local或者/usr/lib/下的python package了(可以通过python -c "import sys; from pprint import pprint as p; p(sys.path)"检查)。简单点的方法就是将除了Anaconda环境下的numpy删除。

sudo apt-get remove python-numpy sudo ~/.local/bin/pip2.7 uninstall numpy


接下来,按readme说明,通过下面命令可以分别跑agent玩家和人类玩家的迷宫场景:

bazel run :random_agent --define headless=false -- --length=10000 --width=640 --height=480 bazel run :game -- --level_script tests/demo_map


Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI



然后通过python api(https://github.com/deepmind/lab/blob/master/docs/python_api.md)就可以让强化学习算法利用该环境进行训练了。

TORCS

TORCS(The Open Racing Car Simulator)是一个跨平台的赛车游戏模拟器,也可作为强化学习的研究平台。官方网站:。但我们不需直接从官网下。gym_torcs是一个TORCS的强化学习环境,提供类似前面OpenAI Gym的接口,网站为https://github.com/ugo-nama-kun/gym_torcs。

假设已安装了上面提到的OpenAI Gym。还需要安装依赖:

sudo apt-get install xautomation

官方声明依赖Python 3.5,那就进入Python 3的环境(假设已创建Python 3.5的Anaconda环境py35):

source activate py35

然后用conda install numpy安装numpy。
下载源码:

git clone https://github.com/ugo-nama-kun/gym_torcs.git

然后进入其vtorcs-RL-color子目录,按其中readme编译安装定制版torcs。安装完了运行torcs命令就能看到界面了。注意按readme说明需要进行一些设置,如赛道以及分辨率,因为实现中只支持64x64分辨率。运行示例代码可以跑一个随机选取动作的agent。

python example_experiment.py


Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI


ps:截图还是用了默认分辨率,因为64x64太小看不清。

Readme中的Simple How-To示例了如何在Python中与该环境交互,然后就可以开发测试强化学习算法了。网上有个实现DDPG算法的例子可以参考:https://yanpanlau.github.io/2016/10/11/Torcs-Keras.html

PySC2(StarCraft II)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13252.html