Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)

MuJoCo

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

如果安装过程中出现下面这种错误:
sh: 2: Syntax error: “(” unexpected
       ERROR: Invalid activation key
你可以下载源码安装:

git clone https://github.com/openai/mujoco-py
cd mujoco-py
pip install -e . --no-cache

然后运行下readme中的例子看是否运行正常。

OpenAI Gym

OpenAI Gym是OpenAI出的研究强化学习算法的toolkit,它里边cover的场景非常多,从经典的Cart-Pole, Mountain-Car到Atar,Go,MuJoCo都有。官方网站为https://gym.openai.com/,源码位于https://github.com/openai/gym,它的readme提供了安装和运行示例,按其中的安装方法:
最小安装:

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 Pillow  libglfw3-dev
pip install -e '.[all]'

然后可以跑readme中的例子,如SpaceInvaders, Go, LunarLander, CarPole, MuJoCo等等:

通过源码下的examples/scripts/list_envs可以列出所有支持的场景。

如果装了Anaconda,过程中出现下面错误的话:
OSError: /home/jzj/anaconda2/envs/py35/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.20′ not found (required by /home/jzj/anaconda2/envs/py35/lib/python3.5/site-packages/atari_py/ale_interface/build/libale_c.so)
可以通过在Anaconda环境中安装libgcc解决:

conda install libgcc

如果在运行依赖Box2d引擎的sample时出现下面错误:
AttributeError: module ‘Box2D._Box2D’ has no attribute ‘RAND_LIMIT’
可以先uninstall已有版本(如有),然后安装pybox2d:

pip uninstall Box2D-kengz
git clone https://github.com/pybox2d/pybox2d.git
cd pybox2d
python setup.py clean
python setup.py install

Gym中也可以通过mujoco-py集成MuJoCo。如果出现下面错误,说明mujoco-py版本不对。目前Gym中支持MuJoCo 1.31和mujoco-py 0.5。按前面说明装上相应版本后即可。
DependencyNotInstalled: No module named ‘mujoco_py.mjlib’. (HINT: you need to install mujoco_py, and also perform the setup instructions here: https://github.com/openai/mujoco-py/.)

rllab

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,将之反注释即可。

如果你很和我一样穷,用的是贫民版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

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

TORCS

TORCS(The Open Racing Car Simulator)是一个跨平台的赛车游戏模拟器,也可作为强化学习的研究平台。官方网站:http://torcs.sourceforge.net/。但我们不需直接从官网下。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说明需要进行一些设置,如赛道以及分辨率,因为实现中只支持64×64分辨率。运行示例代码可以跑一个随机选取动作的agent。

python example_experiment.py 

PySC2(StarCraft II)

DeepMind的AlphaGo把围棋搞定之后,业界开始把目光投向即时策略游戏,如StarCraft II(星际争霸II)。最近DeepMind和Blizzard合作出了个StarCraft II的研究平台,称为PySC2。介绍网站:https://deepmind.com/blog/deepmind-and-blizzard-open-starcraft-ii-ai-research-environment/。论文:https://deepmind.com/documents/110/sc2le.pdf。PySC2是基于Blizzard的StarCraft II Machine Learning API(https://github.com/Blizzard/s2client-proto)的Python下强化学习环境。源码位于:https://github.com/deepmind/pysc2 。

按照readme最简单的安装方法就是:

pip install pysc2

然后需要根据https://github.com/Blizzard/s2client-proto中readme说明安装StarCraft II的环境。主要那几个包都比较大,下载要些时间,下载完成后按readme中解压到指定path下即可。然后就可以测试下了。按readme用以下命令可以分别起agent玩家和人类玩家的环境:

python -m pysc2.bin.agent --map Simple64
python -m pysc2.bin.play --map Simple64 

OpenAI Baselines 

严格来说它本身不是一个开发环境。它是OpenAI出的一些深度强化学习算法(DQN, PPO, TRPO, DDPG)的实现,基于TensorFlow和OpenAI Gym,最新版需要Python 3。源码位于:https://github.com/openai/baselines。
按readme中使用下面命令安装:

pip install baselines

或者用源码中的setup.py安装:

git clone https://github.com/openai/baselines
cd baselines
python setup.py install

除了列出来的依赖,还可能依赖下面的库,使用conda或pip安装:

conda install Pillow atari-py

另外如果用GPU加速但不幸碰到memory分不出的情况(CUDA_OUT_OF_MEMORY),可以强制TensorFlow使用CPU:

export CUDA_VISIBLE_DEVICES=""

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/222781.html<

(0)
运维的头像运维
上一篇2025-04-15 16:01
下一篇 2025-04-15 16:02

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注